{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 作业一"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>create_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1  162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2  162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3  162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4  162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval            create_at  \n",
       "0        177.72         132.0        60  2017-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2017-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2017-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2017-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2017-11-01 00:04:07  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_table('./第二周作业/log.txt', names=['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','create_at'])\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.重复值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.duplicated().sum() #无重复"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>count</td>\n",
       "      <td>1.794960e+05</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>mean</td>\n",
       "      <td>6.866490e+06</td>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177370</td>\n",
       "      <td>108.419620</td>\n",
       "      <td>359.880351</td>\n",
       "      <td>187.812208</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>std</td>\n",
       "      <td>3.686579e+06</td>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.485881</td>\n",
       "      <td>79.640559</td>\n",
       "      <td>638.919769</td>\n",
       "      <td>224.464813</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>min</td>\n",
       "      <td>1.625420e+05</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>25%</td>\n",
       "      <td>3.825183e+06</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>50%</td>\n",
       "      <td>6.811432e+06</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>75%</td>\n",
       "      <td>9.981397e+06</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>max</td>\n",
       "      <td>1.343909e+07</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 id          count   res_time_sum   res_time_min  \\\n",
       "count  1.794960e+05  179496.000000  179496.000000  179496.000000   \n",
       "mean   6.866490e+06       7.175909    1393.177370     108.419620   \n",
       "std    3.686579e+06       4.325160    1499.485881      79.640559   \n",
       "min    1.625420e+05       1.000000      36.550000       3.210000   \n",
       "25%    3.825183e+06       4.000000     607.707500      83.410000   \n",
       "50%    6.811432e+06       7.000000    1154.905000      97.120000   \n",
       "75%    9.981397e+06      10.000000    1834.117500     116.990000   \n",
       "max    1.343909e+07      31.000000  142650.550000   18896.640000   \n",
       "\n",
       "        res_time_max   res_time_avg  interval  \n",
       "count  179496.000000  179496.000000  179496.0  \n",
       "mean      359.880351     187.812208      60.0  \n",
       "std       638.919769     224.464813       0.0  \n",
       "min        36.550000      36.000000      60.0  \n",
       "25%       198.280000     144.000000      60.0  \n",
       "50%       256.090000     167.000000      60.0  \n",
       "75%       374.410000     202.000000      60.0  \n",
       "max    142468.270000   71325.000000      60.0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id              0\n",
       "api             0\n",
       "count           0\n",
       "res_time_sum    0\n",
       "res_time_min    0\n",
       "res_time_max    0\n",
       "res_time_avg    0\n",
       "interval        0\n",
       "create_at       0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>create_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>1970-01-01 00:00:00.000000000</td>\n",
       "      <td>162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1970-01-01 00:00:00.000000001</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1970-01-01 00:00:00.000000002</td>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2017-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                   id                     api  count  \\\n",
       "1970-01-01 00:00:00.000000000  162542  /front-api/bill/create      8   \n",
       "1970-01-01 00:00:00.000000001  162644  /front-api/bill/create      5   \n",
       "1970-01-01 00:00:00.000000002  162742  /front-api/bill/create      5   \n",
       "\n",
       "                               res_time_sum  res_time_min  res_time_max  \\\n",
       "1970-01-01 00:00:00.000000000       1057.31         88.75        177.72   \n",
       "1970-01-01 00:00:00.000000001        749.12        103.79        240.38   \n",
       "1970-01-01 00:00:00.000000002        845.84        136.31        225.73   \n",
       "\n",
       "                               res_time_avg  interval            create_at  \n",
       "1970-01-01 00:00:00.000000000         132.0        60  2017-11-01 00:00:07  \n",
       "1970-01-01 00:00:00.000000001         149.0        60  2017-11-01 00:01:07  \n",
       "1970-01-01 00:00:00.000000002         169.0        60  2017-11-01 00:02:07  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 计算count字段的四分卫数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.使用create_at这一列的数据作为时间索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = data.set_index('create_at')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2017-11-01 00:00:07', '2017-11-01 00:01:07',\n",
       "               '2017-11-01 00:02:07', '2017-11-01 00:03:07',\n",
       "               '2017-11-01 00:04:07', '2017-11-01 00:05:07',\n",
       "               '2017-11-01 00:06:07', '2017-11-01 00:07:07',\n",
       "               '2017-11-01 00:08:07', '2017-11-01 00:09:07',\n",
       "               ...\n",
       "               '2018-05-30 23:01:21', '2018-05-30 23:02:21',\n",
       "               '2018-05-30 23:03:21', '2018-05-30 23:04:21',\n",
       "               '2018-05-30 23:05:21', '2018-05-30 23:06:21',\n",
       "               '2018-05-30 23:07:21', '2018-05-30 23:08:21',\n",
       "               '2018-05-30 23:09:21', '2018-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='create_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.index = pd.to_datetime(data.index)\n",
    "data.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10.0"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q_upper = data['count'].quantile(0.75)\n",
    "q_upper"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4.0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q_lower = data['count'].quantile(0.25)\n",
    "q_lower"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6.0"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val = q_upper - q_lower\n",
    "val"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>create_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, api, count, res_time_sum, res_time_min, res_time_max, res_time_avg, interval, create_at]\n",
       "Index: []"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[(data['count'] > q_upper + k * val) & (data['count'] < q_lower - k * val)]  #不存在异常值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.分析api 和 interval"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['api'].describe()  #api值只有一个，可以删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "      <td>162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                                      \n",
       "2017-11-01 00:00:07  162542      8       1057.31         88.75        177.72   \n",
       "2017-11-01 00:01:07  162644      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  interval  \n",
       "create_at                                    \n",
       "2017-11-01 00:00:07         132.0        60  \n",
       "2017-11-01 00:01:07         149.0        60  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = data.drop('api', axis=1)\n",
    "data2.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['interval'].describe()  #interval值只有一个，可以删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "      <td>162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "create_at                                                                      \n",
       "2017-11-01 00:00:07  162542      8       1057.31         88.75        177.72   \n",
       "2017-11-01 00:01:07  162644      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg  \n",
       "create_at                          \n",
       "2017-11-01 00:00:07         132.0  \n",
       "2017-11-01 00:01:07         149.0  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = data2.drop('interval', axis=1)\n",
    "data2.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "      <td>162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:02:07</td>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:03:07</td>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:04:07</td>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         id                     api  count  res_time_sum  \\\n",
       "create_at                                                                  \n",
       "2017-11-01 00:00:07  162542  /front-api/bill/create      8       1057.31   \n",
       "2017-11-01 00:01:07  162644  /front-api/bill/create      5        749.12   \n",
       "2017-11-01 00:02:07  162742  /front-api/bill/create      5        845.84   \n",
       "2017-11-01 00:03:07  162808  /front-api/bill/create      9       1305.52   \n",
       "2017-11-01 00:04:07  162943  /front-api/bill/create      3        568.89   \n",
       "\n",
       "                     res_time_min  res_time_max  res_time_avg  interval  \n",
       "create_at                                                                \n",
       "2017-11-01 00:00:07         88.75        177.72         132.0        60  \n",
       "2017-11-01 00:01:07        103.79        240.38         149.0        60  \n",
       "2017-11-01 00:02:07        136.31        225.73         169.0        60  \n",
       "2017-11-01 00:03:07         90.12        196.61         145.0        60  \n",
       "2017-11-01 00:04:07        138.45        232.02         189.0        60  "
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = data.set_index('create_at')\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ...,  True,  True,  True])"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.index > '2018-05-30'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6.分析api的调用次数情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "#2018-05-30这天的count变化图\n",
    "from matplotlib.pyplot import MultipleLocator\n",
    "#从pyplot导入MultipleLocator类，这个类用于设置刻度间隔\n",
    "from datetime import datetime\n",
    "import matplotlib.dates as mdates\n",
    "from dateutil import parser\n",
    "import matplotlib.ticker as ticker"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "#方法1\n",
    "#data_count = data[(data.index > '2018-05-30') & (data.index < '2018-05-31')]['count']\n",
    "#data_create_at =  data[(data.index > '2018-05-30') & (data.index < '2018-05-31')].index\n",
    "#plt.plot(data_create_at, data_count)\n",
    "# 配置横坐标\n",
    "#plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))\n",
    "#plt.gca().xaxis.set_major_locator(mdates.HourLocator())    # 按月显示,按日显示的话，将MonthLocator()改成DayLocator()\n",
    "#plt.gcf().autofmt_xdate()  # 自动旋转日期标记\n",
    "#plt.xticks(rotation=50)  #设置x轴数据旋转程度\n",
    "#plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1/12))  #设置x轴时间间隔\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#方法2\n",
    "data02 = data['2018-05-30']\n",
    "plt.figure(figsize=(10, 3))  #x轴间隔宽度\n",
    "data02 = data02[['count']].resample('1H').mean()  #重采样，将count以1小时内值的平均值显示\n",
    "data02['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['2018-05-01']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7.分析一天中api的响应时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "#方法1\n",
    "#data_res_time_min = data03[(data03.index > '2017-11-01') & (data.index < '2017-11-02')]['res_time_min']\n",
    "#data_res_time_max = data03[(data03.index > '2017-11-01') & (data.index < '2017-11-02')]['res_time_max']\n",
    "#data_res_time_avg = data03[(data03.index > '2017-11-01') & (data.index < '2017-11-02')]['res_time_avg']\n",
    "#data_create_at =  data[(data.index > '2017-11-01') & (data.index < '2017-11-02')].index\n",
    "#plt.plot(data_create_at, data_res_time_min, color='g', label='min')\n",
    "#plt.plot(data_create_at, data_res_time_max, color='r', label='max')\n",
    "#plt.plot(data_create_at, data_res_time_avg, color='b', label='avg')\n",
    "#plt.legend()\n",
    "#plt.axis(['2017-11-01','2017-11-02',0,1000])\n",
    "# 配置横坐标\n",
    "#plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))\n",
    "#plt.gca().xaxis.set_major_locator(mdates.HourLocator())    # 按月显示,按日显示的话，将MonthLocator()改成DayLocator()\n",
    "#plt.gcf().autofmt_xdate()  # 自动旋转日期标记\n",
    "#plt.xticks(rotation=50)  #设置x轴数据旋转程度\n",
    "#plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1/12))  #设置x轴时间间隔\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAETCAYAAADNpUayAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd3hUVfrA8e+ZkkoghSQkBEiQ3kMTUBCkKgooKrioKAq2ta6uuruW1Z9t115AsYDYALGxCCIgoPQWQBJakJYEkhCSkDr1/P64MylkUmfCJOF8nifPJHfu3DkTwjtn3vue9wopJYqiKErTovP2ABRFURTPU8FdURSlCVLBXVEUpQlSwV1RFKUJUsFdURSlCVLBXVEUpQkyVLeDEKIzsKjMpvbAM8ACx/ZY4Bhwk5Qy2/GYp4A7ARvwoJRyZVXP0bJlSxkbG1v70SuKolzEdu7ceUZKGe7qPlGbOnchhB5IBS4F7gfOSilfEUI8CYRIKZ8QQnQDvgYGAtHAaqCTlNJW2XH79+8vd+zYUeNxKIqiKCCE2Cml7O/qvtqmZUYCR6SUx4GJwGeO7Z8BkxzfTwQWSilNUsqjQDJaoFcURVEukNoG96los3KASCnlKQDHbYRje2vgZJnHpDi2KYqiKBdIjYO7EMIHmAB8U92uLrZVyP0IIWYJIXYIIXZkZmbWdBiKoihKDVR7QrWMq4BdUsp0x8/pQogoKeUpIUQUkOHYngK0KfO4GCDt/INJKecCc0HLuZ9/v8ViISUlheLi4loMUbmQ/Pz8iImJwWg0ensoiqKcpzbB/WZKUzIAS4HpwCuO2x/LbP9KCPEG2gnVjsC22g4sJSWFoKAgYmNjEcLVhwHFm6SUZGVlkZKSQlxcnLeHoyjKeWqUlhFCBACjge/KbH4FGC2EOOy47xUAKWUisBhIAn4G7q+qUqYyxcXFhIWFqcDeQAkhCAsLU5+sFKWBqtHMXUpZCISdty0LrXrG1f4vAi+6OzgV2Bs29e+jKA2XWqGqKEqD8b89aWQXmL09jCZBBfcL6K233qKwsLDk56uvvpqcnBwvjkhRGo7sAjMPfJ3A0j0V6i+UOlDBvYaklNjtdreOcX5wX758OcHBwe4OTVGahCKLdmqu0FzrU3SKCyq4V+HYsWN07dqV++67j759+/LCCy8wYMAAevXqxbPPPgtAQUEB48ePp3fv3vTo0YNFixa5PNY777xDWloaI0aMYMSIEQDExsZy5swZjh07RpcuXbjrrrvo0aMH06ZNY/Xq1Vx22WV07NiRbdu2lTzXjBkzGDBgAPHx8fz4448unwtg/vz5TJo0iWuvvZa4uDjee+893njjDeLj4xk0aBBnz54F4KOPPmLAgAH07t2byZMnl7z5TJw4kQULFgDw4YcfMm3aNM/8UhWlEiarNnkyW92bRCma2pRCes2//5dIUto5jx6zW3Rznr22e7X7HTx4kHnz5jFp0iSWLFnCtm3bkFIyYcIEfvvtNzIzM4mOjuann34CIDc31+VxHnzwQd544w3Wrl1Ly5YtK9yfnJzMN998w9y5cxkwYABfffUVGzZsYOnSpbz00kv88MMPvPjii1x55ZV8+umn5OTkMHDgQEaNGkVgYKDL59y3bx8JCQkUFxfToUMHXn31VRISEnjkkUdYsGABDz/8MNdffz0zZ84E4F//+heffPIJDzzwAHPnzuWyyy4jLi6O119/nS1bttT0V6sodeIM6iarmrl7gpq5V6Ndu3YMGjSIX375hV9++YX4+Hj69u3LgQMHOHz4MD179mT16tU88cQT/P7777Ro0aJOzxMXF0fPnj3R6XR0796dkSNHIoSgZ8+eHDt2DIBffvmFV155hT59+jB8+HCKi4s5ceJEpcccMWIEQUFBhIeH06JFC6699lqAcsfct28fQ4cOpWfPnnz55ZckJiYCEBkZyfPPP8+IESN4/fXXCQ0NrdPrUpSaKg3uaubuCY1i5l6TGXZ9cc6KpZQ89dRT3H333RX22blzJ8uXL+epp55izJgxPPPMM7V+Hl9f35LvdTpdyc86nQ6r1Voyhm+//ZbOnTt77Ji33347P/zwA71792b+/PmsW7eu5DF//PEHYWFhpKWpE1xK/XPO2FVaxjPUzL2Gxo4dy6effkp+fj4AqampZGRkkJaWRkBAALfccguPPfYYu3btqvQYQUFB5OXluTWGd999F2eb5oSEhDofyykvL4+oqCgsFgtffvllyfZt27axYsUKEhISeO211zh69Kjbz6UoVVFpGc9qFDP3hmDMmDHs37+fwYMHA9CsWTO++OILkpOTefzxx9HpdBiNRubMmVPpMWbNmsVVV11FVFQUa9eurfUYnn76aR5++GF69eqFlJLY2FiW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#方法2\n",
    "data03 = data['2017-11-01'][['res_time_max', 'res_time_min', 'res_time_avg']]\n",
    "data04 = data03.resample('20T').mean()\n",
    "data04.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8.连续几天数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#方法1\n",
    "data_res_time_min = data[(data.index > '2017-11-01') & (data.index < '2017-11-05')]['res_time_min']\n",
    "data_res_time_max = data[(data.index > '2017-11-01') & (data.index < '2017-11-05')]['res_time_max']\n",
    "data_res_time_avg = data[(data.index > '2017-11-01') & (data.index < '2017-11-05')]['res_time_avg']\n",
    "data_create_at =  data[(data.index > '2017-11-01') & (data.index < '2017-11-05')].index\n",
    "plt.plot(data_create_at, data_res_time_min, color='g', label='min')\n",
    "plt.plot(data_create_at, data_res_time_max, color='r', label='max')\n",
    "plt.plot(data_create_at, data_res_time_avg, color='b', label='avg')\n",
    "plt.legend()\n",
    "plt.axis(['2017-11-01','2017-11-05',0,1000])\n",
    "# 配置横坐标\n",
    "plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))\n",
    "plt.gca().xaxis.set_major_locator(mdates.DayLocator())    # 按月显示,按日显示的话，将MonthLocator()改成DayLocator()\n",
    "plt.gcf().autofmt_xdate()  # 自动旋转日期标记\n",
    "plt.xticks(rotation=50)  #设置x轴数据旋转程度\n",
    "plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(1))  #设置x轴时间间隔\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "#方法2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEiCAYAAAAVoQJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOydeXhU1fnHP2eWzGTfAwkJEBbZN6UoigriAtbd1qKtonXpYtXWaq2tttVWW1tbra3aH1oVEatYd6sosogoEHYMJJBAQvZ9nWQy6/n9cWcmGckygWRmIOfzPHlm5s65N2e2733v97znPUJKiUKhUCiGBrpQd0ChUCgUwUOJvkKhUAwhlOgrFArFEEKJvkKhUAwhlOgrFArFEEKJvkKhUAwhAhJ9IUSCEOK/Qoh8IUSeEGKuECJJCLFGCFHguU3s0v5+IUShEOKAEOKiweu+QqFQKPpDoJH+34HVUsqJwAwgD/glsFZKOR5Y63mMEGIysASYAiwCnhFC6Ae64wqFQqHoP32KvhAiDjgH+DeAlNIupWwCLgeWe5otB67w3L8ceE1KaZNSFgGFwJyB7rhCoVAo+k8gkf4YoBZ4UQixSwjxvBAiGhgmpawE8NymedqPAEq77F/m2aZQKBSKEGMIsM2pwB1Syq1CiL/jsXJ6QHSz7ahaD0KI24DbAKKjo0+bOHFiAF05+cgtb0YCY1NjiIpQLphCoQicHTt21EkpU/uzTyCiXwaUSSm3eh7/F030q4UQ6VLKSiFEOlDTpX1Wl/0zgYqvH1RKuQxYBjB79my5ffv2/vT7pOGUBz7C7nSz4kdnctqoxL53UCgUCg9CiCP93adPe0dKWQWUCiEmeDYtBPYD7wFLPduWAu967r8HLBFCmIQQ2cB4IKe/HRtqqMJ3CoUiGAQS6QPcAawUQkQAh4Gb0E4Yq4QQNwMlwLcBpJT7hBCr0E4MTuB2KaVrwHt+kuFWmq9QKIJAQKIvpdwNzO7mqYU9tH8EeOQ4+jXkUJG+QqEIBoFG+opBRkX6ilDicDgoKyujo6Mj1F1RdIPZbCYzMxOj0Xjcx1KiH2K8qU4q0leEkrKyMmJjYxk9ejRCdJeApwgVUkrq6+spKysjOzv7uI+nau+EGK/Uq0hfEUo6OjpITk5Wgh+GCCFITk4esKswJfphgjx6KoNCEVSU4IcvA/nZKNEPMd6PUkX6CoUiGCjRDxPcytNXKAaUJ598kvb2dt/jiy++mKamphD2KDxQoh8mqIFchaITKSVut/u4jvF10f/www9JSEg43q6d8KjsnTBBab4iXHjo/X3sr2gZ0GNOzojjt5dO6bVNcXExixcvZsGCBWzevJkrrriCDz74AJvNxpVXXslDDz1EW1sb11xzDWVlZbhcLh588EG+853vHHWsp556ioqKChYsWEBKSgrr169n9OjRbN++HYvFwqJFi5g3bx5btmxhxowZ3HTTTfz2t7+lpqaGlStXMmfOHNra2rjjjjv46quvcDqd/O53v+Pyyy/vtu8vvfQS77zzDi6Xi9zcXH7+859jt9tZsWIFJpOJDz/8kKSkJJ577jmWLVuG3W5n3LhxrFixgqioKC6//HKuvvpqbrjhBv7v//6PjRs3snLlygF577+OivTDBOXpKxRw4MABbrjhBh577DHKy8vJyclh9+7d7Nixg40bN7J69WoyMjLYs2cPubm5LFq0qNvj3HnnnWRkZLB+/XrWr19/1POFhYXcdddd7N27l/z8fF599VU2bdrE448/zqOPPgrAI488wnnnnce2bdtYv3499957L21tbT32PTc3l1dffZWcnBx+/etfExUVxa5du5g7dy4vv/wyAFdddRXbtm1jz549TJo0iX//+98ALFu2jIcffpjPP/+cv/71r/zjH/843reyR1SkHyYoT18RLvQVkQ8mo0aN4owzzuCee+7hk08+YdasWQBYLBYKCgo4++yzueeee7jvvvu45JJLOPvss4/p/2RnZzNt2jQApkyZwsKFCxFCMG3aNIqLiwH45JNPeO+993j88ccBLa21pKSESZMmdXvMBQsWEBsbS2xsLPHx8Vx66aUATJs2jb179wLaieGBBx6gqakJi8XCRRdpCwsOGzaMhx9+mAULFvD222+TlJR0TK8rEJTohwnK01coIDo6GtB+D/fffz8/+MEPjmqzY8cOPvzwQ+6//34uvPBCfvOb3/T7/5hMJt99nU7ne6zT6XA6nb4+vPnmm0yYMKHbYxzLMW+88UbeeecdZsyYwUsvvcSGDRt8+3z11VckJydTUXFUUeIBRdk7YYLSfIWik4suuogXXngBi8UCQHl5OTU1NVRUVBAVFcX3vvc97rnnHnbu3NnjMWJjY2ltbT2uPvzjH//w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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data03 = data['2017-11-01':'2017-11-05'][['res_time_max', 'res_time_min', 'res_time_avg']]\n",
    "data04 = data03.resample('20T').mean()\n",
    "data04.plot()\n",
    "plt.axis(['2017-11-01','2017-11-05',0,600])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9.分析周末访问量是否增加"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "            ...\n",
       "            1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n",
       "           dtype='int64', name='create_at', length=884)"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['2018-05-01'].index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "      <td>162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         id                     api  count  res_time_sum  \\\n",
       "create_at                                                                  \n",
       "2017-11-01 00:00:07  162542  /front-api/bill/create      8       1057.31   \n",
       "2017-11-01 00:01:07  162644  /front-api/bill/create      5        749.12   \n",
       "\n",
       "                     res_time_min  res_time_max  res_time_avg  interval  \\\n",
       "create_at                                                                 \n",
       "2017-11-01 00:00:07         88.75        177.72         132.0        60   \n",
       "2017-11-01 00:01:07        103.79        240.38         149.0        60   \n",
       "\n",
       "                     weekday  \n",
       "create_at                     \n",
       "2017-11-01 00:00:07        2  \n",
       "2017-11-01 00:01:07        2  "
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['weekday'] = data.index.weekday  #weekday返回日期对应的星期数\n",
    "data.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>weekday</th>\n",
       "      <th>isweekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:00:07</td>\n",
       "      <td>162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017-11-01 00:01:07</td>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         id                     api  count  res_time_sum  \\\n",
       "create_at                                                                  \n",
       "2017-11-01 00:00:07  162542  /front-api/bill/create      8       1057.31   \n",
       "2017-11-01 00:01:07  162644  /front-api/bill/create      5        749.12   \n",
       "\n",
       "                     res_time_min  res_time_max  res_time_avg  interval  \\\n",
       "create_at                                                                 \n",
       "2017-11-01 00:00:07         88.75        177.72         132.0        60   \n",
       "2017-11-01 00:01:07        103.79        240.38         149.0        60   \n",
       "\n",
       "                     weekday  isweekend  \n",
       "create_at                                \n",
       "2017-11-01 00:00:07        2      False  \n",
       "2017-11-01 00:01:07        2      False  "
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['isweekend'] = data['weekday'].isin({5,6})\n",
    "data.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "isweekend\n",
       "False    6.929331\n",
       "True     7.787945\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby('isweekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "isweekend  create_at\n",
       "False      0             3.128067\n",
       "           1             1.630455\n",
       "           2             1.169133\n",
       "           3             1.077844\n",
       "           4             1.177778\n",
       "           5             1.157895\n",
       "           6             1.000000\n",
       "           7             1.000000\n",
       "           8             1.000000\n",
       "           9             1.130081\n",
       "           10            1.239251\n",
       "           11            2.063804\n",
       "           12            4.371090\n",
       "           13            6.486743\n",
       "           14            7.871789\n",
       "           15            8.456582\n",
       "           16            7.997661\n",
       "           17            6.407690\n",
       "           18            6.563842\n",
       "           19            8.571731\n",
       "           20           10.495051\n",
       "           21           10.963392\n",
       "           22            9.378861\n",
       "           23            6.250367\n",
       "True       0             3.734308\n",
       "           1             1.817551\n",
       "           2             1.149606\n",
       "           3             1.075758\n",
       "           4             1.000000\n",
       "           5             1.166667\n",
       "           6             1.000000\n",
       "           7             1.000000\n",
       "           8             1.090909\n",
       "           9             1.056338\n",
       "           10            1.253294\n",
       "           11            1.910992\n",
       "           12            3.572730\n",
       "           13            7.358687\n",
       "           14            9.821528\n",
       "           15           11.055741\n",
       "           16           10.587842\n",
       "           17            8.274307\n",
       "           18            7.726024\n",
       "           19            9.476576\n",
       "           20           11.275718\n",
       "           21           11.399721\n",
       "           22            9.550251\n",
       "           23            6.264972\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(['isweekend', data.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>isweekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>create_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>3.128067</td>\n",
       "      <td>3.734308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.630455</td>\n",
       "      <td>1.817551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.169133</td>\n",
       "      <td>1.149606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.077844</td>\n",
       "      <td>1.075758</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.177778</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1.157895</td>\n",
       "      <td>1.166667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.090909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>1.130081</td>\n",
       "      <td>1.056338</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>1.239251</td>\n",
       "      <td>1.253294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>2.063804</td>\n",
       "      <td>1.910992</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>4.371090</td>\n",
       "      <td>3.572730</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>6.486743</td>\n",
       "      <td>7.358687</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>7.871789</td>\n",
       "      <td>9.821528</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>8.456582</td>\n",
       "      <td>11.055741</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>7.997661</td>\n",
       "      <td>10.587842</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>6.407690</td>\n",
       "      <td>8.274307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>6.563842</td>\n",
       "      <td>7.726024</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>8.571731</td>\n",
       "      <td>9.476576</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>20</td>\n",
       "      <td>10.495051</td>\n",
       "      <td>11.275718</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>21</td>\n",
       "      <td>10.963392</td>\n",
       "      <td>11.399721</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>22</td>\n",
       "      <td>9.378861</td>\n",
       "      <td>9.550251</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>23</td>\n",
       "      <td>6.250367</td>\n",
       "      <td>6.264972</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "isweekend      False      True \n",
       "create_at                      \n",
       "0           3.128067   3.734308\n",
       "1           1.630455   1.817551\n",
       "2           1.169133   1.149606\n",
       "3           1.077844   1.075758\n",
       "4           1.177778   1.000000\n",
       "5           1.157895   1.166667\n",
       "6           1.000000   1.000000\n",
       "7           1.000000   1.000000\n",
       "8           1.000000   1.090909\n",
       "9           1.130081   1.056338\n",
       "10          1.239251   1.253294\n",
       "11          2.063804   1.910992\n",
       "12          4.371090   3.572730\n",
       "13          6.486743   7.358687\n",
       "14          7.871789   9.821528\n",
       "15          8.456582  11.055741\n",
       "16          7.997661  10.587842\n",
       "17          6.407690   8.274307\n",
       "18          6.563842   7.726024\n",
       "19          8.571731   9.476576\n",
       "20         10.495051  11.275718\n",
       "21         10.963392  11.399721\n",
       "22          9.378861   9.550251\n",
       "23          6.250367   6.264972"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby(['isweekend', data.index.hour])['count'].mean().unstack(level=0) #unstack取消堆叠显示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEHCAYAAAC3Ph1GAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd1xVV7bA8d++dJAiRRFBATs2EGyxRE3RdFNMN5pJb5M3LZOpmXmT9/JmJslMepvEZBJTjKmjJjGxdwXFjmKnSVV6v/v9ccCoFCn33nMvrO/n4we493DO4oYszl1777WV1hohhBCux2J2AEIIITpGErgQQrgoSeBCCOGiJIELIYSLkgQuhBAuShK4EEK4KHdHXiw0NFRHR0c78pJCCOHyUlJSCrTWYec/7tAEHh0dTXJysiMvKYQQLk8pdby5x6WEIoQQLkoSuBBCuChJ4EII4aIcWgNvTm1tLZmZmVRVVZkdikN4e3sTGRmJh4eH2aEIIVyc6Qk8MzMTf39/oqOjUUqZHY5daa0pLCwkMzOTmJgYs8MRQrg400soVVVVhISEdPnkDaCUIiQkpNu82xBC2JfpCRzoFsm7UXf6WYUQ9uUUCfx8F110kUOvN3/+fBYvXmzTcx47dowRI0bY9JxCCAfRGkpz4eha2PoWLP0lvHs1vDAajq4zO7ozTK+BN2fjxo1mhyCE6A6sVijOgIKDkH8A8tMaPk+DquIfj/MKgNDBxmPr/wExU8yL+SxOeQfeo0cPAHJycpg6dSrx8fGMGDGCdevWsWjRIn7+858D8MILLxAbGwvA4cOHmTx5MgApKSlcfPHFJCYmMnPmTHJycs4cM2vWLBITE5kyZQppaWlNrv2HP/yB+fPnY7Va+fvf/87YsWMZNWoUTz31FGDcWQ8bNoz77ruP4cOHc/nll1NZWXnmuqNHj2bixIm88sor9n2RhBAdk5kCn98Pb0yFZ/rCC6Ng4U2w/Hdw4BuweMCIG+GKv8HcL+HnafDkCbhvBUx4GA6vgMLDZv8UgJMm8EYffvghM2fOJDU1lZ07dxIfH8/UqVNZt854C7Nu3TpCQkLIyspi/fr1TJkyhdraWh577DEWL15MSkoKP/nJT/jd734HwP33389LL71ESkoKzz77LA8//PA513viiSfIy8tjwYIF/PDDD6Snp7N161ZSU1NJSUlh7dq1AKSnp/PII4+wd+9egoKC+OyzzwC4++67efHFF9m0aZMDXyUhRJtZrfDZPXDwW/ANgcT5cPU/4e5v4Ymj8MRhuHspXP0PGP8ADJgOAX2gcexqzF1gcYfkd0z9MRo5ZQml0dixY/nJT35CbW0ts2fPJj4+Hn9/f8rKyigtLSUjI4Pbb7+dtWvXsm7dOm644QYOHDjAnj17uOyyywCor6+nT58+lJWVsXHjRubMmXPm/NXV1Wc+/8tf/sL48eN58803AVi+fDnLly8nISEBgLKyMtLT0+nXrx8xMTHEx8cDkJiYyLFjxyguLub06dNcfPHFAMydO5dvvvnGIa+TEKKNDn0Pp47CTe8Yd9nt5R8Ow66BHR/AjN+Dh4/tY2wHp74Dnzp1KmvXrqVv377MnTuXf//73wBMnDiRBQsWMGTIEKZMmcK6devYtGkTkyZNQmvN8OHDSU1NJTU1ld27d7N8+XKsVitBQUFnHk9NTWX//v1nrjV27FhSUlIoKioCjDnbv/nNb84ce+jQIe655x4AvLy8znyfm5sbdXV1aK1lhokQzm7LG+DfB4Zd2/FzjL0Xqk7Dns9tF1cHOXUCP378OL169eK+++7jnnvuYfv27YCR2J999lmmTp1KQkICq1atwsvLi8DAQIYMGUJ+fv6ZMkZtbS179+4lICCAmJgYPv30U8BI0Dt37jxzrVmzZvHkk09y1VVXUVpaysyZM3nnnXcoKysDICsri7y8vBZjDQoKIjAwkPXr1wOwcOFCu7wmQrSquhQOrzRKBeJcBelG/TrpJ+DWiZXQ/SdB2FDY9i/bxdZBTp3AV69eTXx8PAkJCXz22Wc8/vjjAEyZMoWMjAymTp2Km5sbUVFRZwYwPT09Wbx4Mb/+9a8ZPXo08fHxZ2a1LFy4kLfffpvRo0czfPhwvvrqq3OuN2fOHO677z6uvfZapkyZwu23387EiRMZOXIkN910E6Wlpa3Gu2DBAh555BEmTpyIj4+5b61EN/XVo/D+9bDgCji5x+xonMvWt8DN06h7d4ZSxl149nbISrFJaB0ORWvtsIslJSXp8/uB79+/n2HDhjksBmfQHX9m4QDp3xuzKYZeDSc2QeVpmPAQTHsSvPzNjs5c1aXw3DAYeiXc8GaHTnGyuIr3Nx/jjvH9ifCuheeGwvDrYbb9Z5wppVK01knnP+7Ud+BCiDaqqYClPzfmKt/0DjyaDGPmwqaX4eVxsPdLY3FKd5X6EdSUwrgH2v2tdfVW/rXuCJc8t5pXVh3m/75JA+8AGH0L7FkMFUV2CLhtJIEL0RWs/RucPmFMf3P3At9guOYFuOcH8AuBT+cZd+dOMn/ZoaxW2Pom9E2EyMR2fWvK8SKufmk9Ty/dz7iYYG4cE8mSXdkcLSiHpHugrgpSP7RT4BcmCVwIV5e7Dza+BPF3QPTkc5+LGgv3rYZZf4UTW+DVibD6/6C2GzVUO7IKCtPbdfd9qryGXy/exY2vbaKkspY35ibyzvyx/PqKIXi4WXht9SEIHwH9JkLy26YNGksCF8KVWa2w5GfGUu/L/tL8MW7uMOFBeHQbDLsaVj8Dr02EQyscG6tZtr4JfmEwfPYFD7VaNZ9sO8GM51bz2fZMHpgay/c/v5iZw8NRStHL35vbxvXj8+1ZZJ6qMAYzi44YfyRMIAlcCFeW+gFkbIbL/2KUSloT0Meoj8/9AlDwwQ3w6XwoyXZEpOYoOgoHv4PEu43SUiv255Qw541N/Pqz3Qzq5c/Sn07hN1cOw8/r3PWO90+NRSl4Y80RY1GPXxhse9ueP0WLJIEL4arKC+D7PxrzkuPvaPv3DZgBD2+C6b83en+8PBY2vQL1dfaL1Szb/gUWN2PudwvKqut4esk+rn5pPUcLynl2zmg+eWACQ8Kbn7kTEeTDjWMi+SQ5g7wKbSyvP/gNnM6w10/RIkngGKsp4+Pjz/w7duxYi8c2NtoSwnTLfw/VZXDV8z/26mgrdy+4+Ffw8Gajjvvdb+HNiyGvaYM3l1VTDjveN1ZdBvRp8rTWmmW7c7j0uTW8veEot4yNYuUvLuamxMgLrqp+aNoA6uqtvLXuyI/zylPetf3PcAGSwAEfH59zlthHR0ebHZIQrTu6FnZ+BJN+Cr2Gdvw8wTFwx6dwywdGKeW739ouRrPt+sRo/zq+6eDlsYJy5i3YxsMLtxPs58lnD13E/14/kiBfzzadun+IH9fF9+WDzSco8giHwbNg+3tQV33hb7YhSeDNKCsr45JLLmHMmDGMHDmyyYpNaL7VLRhNsCZOnMiYMWOYM2fOmaX4QthMXbUxcNkzGqb+qvPnU8qo5Y65C46uMXVes81oDVvehPBREDX+nKc+357J5f9cy/bjp3jqmji+fnQSY/r1bPclHp42gMraehZsOApj74HyfNj/H1v9BG3iVN0I//yfvezLLrHpOeMiAnjqmuGtHlNZWXmmu2Bjv5QvvviCgIAACgoKmDBhAtdee+05b6saW93+7ne/o76+noqKCgoKCnj66af54Ycf8PPz469//SvPP/88f/zjH236M4lubsMLUHgI7vzMtt3whs+GDf+EtKXGIiBXdmwd5O+H6145p7xUW2/lmW/SGNYngDfnJtI7wLvDlxjU258rRoTz7oZj3Dt5GoE9Y4ya+8ibbPETtIlTJXCzNJZQGtXW1vLb3/6WtWvXYrFYyMrKIjc3l/Dw8DPHNNfqds2aNezbt49JkyYBUFNTw8SJEx3+84gurPAwrH0Wht8AAy+17bn7xENQf9j3pesn8C1vgE9wk5axK/bnkV9azTPXj+xU8m70yPSBfLPnJO9vPsGjY+8xxiVO7jHmiDuAUyXwC90pO8rChQvJz88nJSUFDw8PoqOjm+wk39jqdunSpcydO5df/epX9OzZk8suu4yPPvrIpMhFl6a1sVze3QtmPWP78ytl3IVvegUqT4FP+8sKTuH0CTiwDCY93uQdysfbThAe4M20IWE2udSIvoHMGNqLt9cf5e7HbsFv5dPGwp6r/2GT81+I1MCbUVxcTK9evfDw8GDVqlUcP368yTHNtbqdMGECGzZs4NChQwBUVFRw8OBBR4cvuqrdi+HIarjkj8bGAvYQdx1Y6yBtmX3O7wiNc7KT7jnn4cxTFaw5mM/NY6Nwd7Nd6ntk+kBOVdTy0Z4y445/5ydQZdtScEskgTfjjjvuIDk5maSkJBYuXMjQoU1H+ZtrdRsWFsa7777LbbfdxqhRo5gwYUKz+24K0W6Vp+C730DEmFbnNHdaxBgI6meUUVxRbaUxG2ToVRAUdc5Ti7YZ87RvGRvV3Hd2WGL/nlw0IIQ31h6hOuFuqC03ZsA4gFOVUMxy/kyR0NDQFve1bDx23rx5zJs3r8nzM2bMYNu2bbYPUnRvK/4bKgqNgUuLm/2uo5RxF775daMdrU+Q/a5lD7sXG3/szut7Uldv5ZPkDKYNDqNvkO179T86YyC3v7WFRdlhzI1IMAYzx97b/vn57XTBO3Cl1DtKqTyl1J6zHgtWSn2vlEpv+OiixTIhXEDGNkheAOMfgj6j7X+9uNlgrTVWaboSrWHrG9ArrklTr1UH8sktqea2cf3scumJsSEk9u/J62uOUJd4D+SnwfENdrnW2dpSQnkXmHXeY08CK7TWg4AVDV8LIWytvhaW/BcERMB0By2y6ZsIgVGuV0Y5sRlO7oZx9ze58/1o6wl6+XsxY2gvu1xaKcWj0weSdbqSr+rGg3eQQ7Zcu2AC11qvBc6f2X8d8F7D5+8BF27zJYRov82vQe4euOJv4OWgNg6NZZTDK42VjK5i6xvgHQijbj7n4azTlaw+kMfNSbYdvDzftCFhDI8I4KW1WVjj7zAW9ZSetNv1oOODmL211jkADR9b/LOmlLpfKZWslErOz8/v4OWE6IZOnzBavw650mgD60hxs6G+Bg5869jrdlRJNuz7GhLmgqffOU8t2paBxvaDl+dTSvHYjIEcK6xgZY+rjNk82/9t12vafRaK1vpNrXWS1jopLMw2cy+F6PK0hmVPGJ9f8VfHX79vIgT0dZ0ySvIC0FZj4PAsdfVWFiVnMGVQGFHBvnYP4/K4cAb16sHft9WjY2cYcdmxy2NHE3iuUqoPQMPHPNuFJIQgbanRonTab4xpfY5msRhllEMrHDanucPqqiFlgdFQKjjmnKfWHMwnp7iK28fZ9+67kcWieGT6QA7klrIj/EYozTb+O9rreh38vq+Bxjl084Cm3Z5cRGFh4Zk2suHh4fTt2/fM1zU1NWaHJ7qj+jr45tfQe4Sxq7xZ4mZDfTUcdPIyyt4vjUZS4+9v8tRHW08Q2sOLS4b1dlg4V4/qQ/8QX/6cFoUOiLTrYGZbphF+BGwChiilMpVS9wD/B1ymlEoHLmv42iWFhIScaSP74IMP8rOf/ezM156entTVdcEm98K5ndgIJZlw8RPg5mFeHJFjwT8C9jn5/dnWNyB0MMROP+fhnOJKVqblcXNSJB52HLw8n7ubhYenDWBndhnHom82Vs8WpNvnWhc6QGt9WwtPXWLjWJzG/PnzCQ4OZseOHYwZMwZ/f3969OjBL3/5SwBGjBjBkiVLiI6O5oMPPuDFF1+kpqaG8ePH8+qrr+LmZseFFqLrS1sK7t62b1bVXhYLxF1r1HGrS8Gr+R1qTJWZAlkpcOWzTaYOLtqWiVXDrWMdX4K6PiGSF35I53+yE3nL4oFKfscu/WucayXmN08a8zhtKXwkXNH+NwgHDx7khx9+wM3NjT/96U/NHrN//34++eQTNmzYgIeHBw8//DALFy7krrvu6mTQotvS2uhDEjutyWwKU8TNhi2vG/tKOrBNapttfQM8/WH0rec8XN+wOfGUQaH0C7H/4OX5PN0tPHDxAJ76ei+FQ2cSumMhzPi9zf+bSi+UFsyZM+eCd9IrVqwgJSWFsWPHEh8fz4oVKzhy5IiDIhRd0sndUHzC6OXhDKLGg38f2PuF2ZE0VZYHez6HhDuavDtYezCf7OIqu628bItbxkYR2sOL18qnQ3Ux7PnM5tdwrjvwDtwp24uf349/Kd3d3bFarWe+bmwtq7Vm3rx5PPOMHVp7iu4pbSmgYPAVZkdisFiMPSW3v2fsv+moxURtkfKuseR/7H1NnjIGLz251IGDl+fz9nDj/qkx/O+yKn7ZZwg+2942dj2yIbkDb4Po6Gi2b98OwPbt2zl69CgAl1xyCYsXLyYvz5hFWVRU1GzrWSHa7MBS4663hxOtmYi7DuqqIP07syP5UX0tJL9jjBOEDjznqdySKlak5XFTYhSe7uamuDvG9yfI15OlTIGcVCiz7WJGSeBtcOONN1JUVER8fDyvvfYagwcPBiAuLo6nn36ayy+/nFGjRnHZZZeRk5NjcrTCZZ06bpRQnKV80qjfBOjR25iu5yz2fQWlOU26DgJ8mpxBvVVzq51XXraFn5c7P5kUw4cnI40HMjbb9PzOVUIxWUuDlT4+PixfvrzZ52655RZuueUWO0Yluo3G7n/OlsAtbkYZZccHUFPuHIOrm1+D4AFNZupYrZqPtmYwaWAI0aFOECcw76Jo3l07iFrlgceJzcYG0jYid+BCOIu0JRA2FEIGmB1JU3HXQV0lpDd/I+NQGdsgK9lY5GQ5N4WtO1RA1ulKUwcvzxfo48ENY2NJrY+l/njz+wx0lCRwIZxBRREc3+h8d9+N+l8Efr2co4yy+VXwCoTRTZeofLTlBMF+nlwWZ97gZXOmDg5jm3UIKmcn1FTY7LySwIVwBunLQdfDECdN4BY3461/+nKbJqB2K8406t+JdzWZEZNXUsUP+3O5KTESL3fnWkw3pn9PtushWHSdsfDIRpwigWutzQ7BYbrTzyraIW2JMd86IsHsSFo2fDbUVphbRtn6FqCNTRvO82lKJnVOMnh5vh5e7lSGJxlf2HAg0/QE7u3tTWFhYbdIbFprCgsL8fb2NjsU4UxqK+HQShhyRZOarlPpdxH4hprXG6Wm3Jj7PeyaJh0arVbNx9tOMCE2mNgwJ5qrfpYRA/pzUEdSf8x2dXDTZ6FERkaSmZlJd9nswdvbm8jISLPDEM7kyBpjJ3NnrX83cnM3kueuRcYfHQ/bbw7cqp0fQ9VpmPBwk6c2HC4go6iSX14+xLExtcO4mGCSNw4mNmMLWOttsjm16Qncw8ODmJiYCx8oRFeVtgS8AiB6qtmRXNjw2Ubv7fTvjUZXjmK1Gj1ZIhKMhU7n+WjrCXr6ejBzeLjjYmqnpOhg/qyHcHvtSsjbD+EjOn1OJ36/JkQ3YK03+m0PvBTcPc2O5sL6TwbfEMfv1HN4JRQcNO6+z+s6mF9azfK9udw4JhJvD+cavDxboI8Hp0MTjS9O2KaMIglcCDNlbjM2I3D28kkjN3cYerXRnbC20nHX3fwq9Ag3uiOeZ3Hj4KUTzf1uSf8Bw8jTPW02H1wSuBBmSlsKFg8YdJnZkbTd8NlQU2Zst+YIeWlweAWMu7fJu5TGwctxMcEM7OWcg5dnGx8bylbrYOpsNJApCVwIs2ht1L9jpoB3oNnRtF30FPAJdlwZZcvrxgYXiXc3eWrTkUKOF1ZwuwvcfUPDQKZ1CF7l2XA6o9PnkwQuhFnyD0DREdcpnzRy8zBiPvAt1FbZ91oVRcbsk1E3g19ok6c/3HqCQB8PZo1w3sHLswX7eZLXs2Guf8aWTp9PErgQZjmw1Pg45Epz4+iI4bOhptQYXLSnlHeNHizjm27uXFhWzfK9J51+8PJ8YQPGUKG9sNqgDi4JXAizpC2FiDEQEGF2JO0XczH49LRvGaW+1lh5GTsNesc1efqz7ZnU1mtuG+d8Ky9bM3ZAL1Ksg6g+srHT55IELoQZSnKMnhhDXfDuG84qo3wDddX2uca+r6A0u9mFO1obbWPHRvdkUG8n3Gy5FY11cO+i/VBV3KlzSQIXwgwHlhkfh15tbhydETcbqkvsV0Y50/O76QydLUeLOFpQbsqO853Vy9+bLP9RKLQxjbQTJIELYYa0pRAca/T/dlUxFxuzZ+zRG6WVnt8Ai5Iz8Pdy58qRfWx/bQfwjZ1AHZZO18ElgQvhaFUlcHStMXh53qrCzqips/L0kn1M+r+VfJqcgdVq5wZx7p7GO4i0ZbYvo7TS87u0qpZlu3O4enQEPp6uM3h5toRBkeyz9qfy0IZOnUcSuBCOduh7Yzd1G5ZPsk9Xcuubm/jX+qN4uCl+tXgXN72+kT1ZnauxXlDcbKguhiOrbXfOVnp+AyzZlUNVrZWbk1y3Kdz4mBBSrIPxyt1hDNZ2kCRwIRwtbZnRljVqnE1Ot+ZgPle9uI6DuWW8cvsYVv5iGn+/aRTHCyu49uX1/PGrPRRXdDxJtCp2mnGnbMudelrp+Q3GpsUDe/UgPirIdtd0sIggH474jsTdWgU5uzp8HkngQjhSXY2xIcKQWZ1uJ1pv1Tz//UHmL9hK7wBvvn50EleN6oPFopiTFMXKX05j7oT+fLD5ODOeW80ie5RV3D2NmTQHlkJ1aefP10rPb4BDeaVsP3Gam5MiUTYsP5nBvf9FAOgTHZ9OKAlcCEc6ts6YudHJ8klBWTXz3tnKiyvSuXFMJF88PKnJRgaBPh78+boR/OexyUSH+vHE4l3caI+ySsKdRl3/jamd3y6slZ7fYOy642ZRXJ/guuWTRsOGDOaENYyy9I7XwSWBC+FIB5aBh69ReuigbceKuOrFdWw7VsTfbhzFs3NGtzqYNzwikE8fmMizc0ZzoqGs8ocvbVhWiZ4M85cYA5lvXw7rnjfa5LbXBXp+19Zb+Swli+lDehHm72WDwM01PiaYbXoI7llbjL44HdCpBK6U+plSaq9Sao9S6iOllOwVJkRLtDbq3wNmdGg3G601b609wq1vbsbHw40vHp7EzW3c/9FiUdyUGMnKX07jronRLNxynOnPrWbRNhuVVaInw0MbjHcWK/4M/74OirPad45Wen4DrDmQT0FZtUsPXp6tX7AvBz1H4FNTZPTE6YAOJ3ClVF/gp0CS1noE4Abc2tHzCdHlZe8wVhZ2oHlVcWUtD7yfwv8s28/lcb35+rHJxEUEtPs8gT4e/Ona4Sx5bAqxoX488ZkNyyo+PWHOu3DdK5C1HV67qH1zxFvp+Q3waUoGoT08mT60V+djdQJKKehnvNPQHdzgobMlFHfARynlDvgC2Z08nxBdV9pSUBYYPKtd37Ynq5hrXlrPyrQ8/nB1HK/eMYYAb49OhRIXEcCnD07kuTmjySiq4JqX1/P7L3dTXNnJsopSRk38wXUQHAOL7oKvHzMGJ1vTSs9vMGr+K/bncX1CXzzcuk7lt9+QBE5rP8rS13fo+zv8Smits4BngRNADlCstV5+/nFKqfuVUslKqeTusnGxEM06sAz6TwLf4DYdrrXmwy0nuOG1jdTWW/nkgQncMznGZrMvlFLcmBjJil9MY97EaD7ccoInFu+0ybkJGQA/WQ6Tfwbb3zcGOLN3tHx8Kz2/Ab7ckUWdVTMnybUaV13I+Ngwkq2D0R1ckdmZEkpP4DogBogA/JRSd55/nNb6Ta11ktY6KSwsrKOXE8K1FR6GvH1tbh1bUVPHzxft5Ldf7GZ8TDBLfzqFxP5tS/zt1VhWeWzGIL7bm0vayRLbnNjdEy79E8z7Gmoq4F+Xwfp/GoOVZ7tAz2+tNYuSM4iPCmKwizWuupABYX7s94gjoPwYlBe0+/s7817kUuCo1jpfa10LfA5c1InzCdF1nWledeEEXlVbz02vbeLL1Cx+dulg3r17HMF+9t/w+O5J0fh5uvHqqsO2PXHMVGOAc8gs+OEpeH82lJxVbW2l5zfArsxiDuaWMaeLDF6eTSlFTUTDgq4ObPDQmQR+ApiglPJVxnu6S4D9nTifEF1X2jLoPQJ6Rl/w0H9vOsa+nBJeu2MMj186CDeLYxasBPl6cufE/izZlc3RggvUrNvLNxhufh+uedHowPfaRbB/yQV7foMxeOnlbuGa0S7YN70Neg2ZSLV2p+TgunZ/b2dq4FuAxcB2YHfDud7s6PmE6LLKCyBjc5tmn5wqr+HllYeYPiSMWSMc32nv3smxeLhZeG31IdufXClInAcPrDVWWX5yB7x3jTEzp4W776raer5KzeaKEeGdHrh1VmMH9WGXjqX2aPvr4J0aztVaP6W1Hqq1HqG1nqu1tlNndyFc2MFvQVvblMBfWnmIsuo6fnPlMAcE1lSYvxe3jo3i8+1ZZJ2utM9FQgfBPT/ApMfhxGaj5/egy5s99Lu9JymtquPmLjZ4ebbBvfzZYxlG4Ok9UNu+17zrzMcRwlmlLYXAKAgf1ephxwvLeX/zMW4ZG2XqYN39Fw8A4I01Nq6Fn83dEy77b7hvJdy+qNme3wCfJmcS2dOHCbEh9ovFZBaLoqx3Eu66zpg/357vtVNMQggw5j8fXtmm3t9/+/YAHm4WfnbpYAcF17y+QT7cOCaSj7dlkFdq513n+46B0IHNPpVRVMGGwwXclBiJxUHjAGYJGjIZgNJ2zgeXBC6EPR1eBXVVF5x9knL8FEt353D/1Fh6BZjfkeKhaQOoq7fy9rqjpsXw2fZMAG5K7HqzT84XP3gA6da+lB+SBC6E80hbamw71n9Si4dorfnfZfsJ8/fivimxDgyuZdGhflw9KoIPNh/nVHmNw69vtWoWp2QyaUAokT19HX59R4uLCGCnGkpgwfam8+RbIQlcCHuprzMGMAfPMnZxb8G3e06ScvwUv7hsMH5e7g4MsHWPTB9IeU09CzYec/i1Nx8pJPNUZZec+90cN4viVGgiPvVlkJ/W5u+TBC6EvWRshsqiVldf1tRZ+eu3aQzu3cPplokPCffn8rjevLvhKKVVdtrRpwWfpmTi7+3OzOHhDr2umXwHGu/SytLbPh9cErgQ9nLwW3DzhIGXtHjIwi3HOVZYwU/qMPYAAB5lSURBVG+uHOawBTvt8eiMgZRU1fHB5hMOu2ZJw6bF18VH4O3hmpsWd8SwuFHk6SCKD0gCF8J8Wduhz2jwan5KYHFlLS+uSGfSwBCmDXbOPkGjIoOYMiiUf607QmVNBzZp6ID/7Mymus7KnETnekdibyMjg9jOEHxzk9v8PZLAhbAHaz3k7DR2l2nBq6sPcbqylt9eOcyp93d8bMYgCstr+HibY+7CP03OZEhvf0ZFBjrkes7Cw81CflACPWty2rwZhiRwIeyh8BDUlLWYwDNPVbBgwzGuT+jL8AjnTlTjYoIZFx3Mm2uPUFPX9hkSHXEwt5TUjNPM6QKbFneEZ4zRD7Ct0wklgQthD429r/vEN/v0s98dQAG/vHyI42LqhEdmDCSnuIrPG+Zm28unyRm4WxTXJ/S163WcVczIiZRrLwr2t60OLglcCHvI3mFsXhzadFXlrszTfJmazb1TYogIav/emGaYOiiUUZGBvLr6MHX19rkLr6238sWOLC4Z1ouQHq6/aXFHjOoXwi49EM/strWWlQQuhD1kpxq9T9zOndfduGgnxM+TBxt6jrgCpRSPTB/IiaIKluzKscs1VqXlUVBW0+0GL8/m7eFGVkA8vSoOQXXpBY+XBC6ErdXXwcldzda/V+zPY/ORIv7r0kH4u1h71MuG9WZw7x68suqQbXayP8+i5EzC/L2YNsQ5Z+Q4TP+JuGGl/MjmCx4qCVwIWys4CLUVTRJ4Xb2VZ77ZT2yoH7eO62dScB1nsRh34el5ZSzfd9Km584rrWLVgTxuGNMX9y60aXFHRI6YQr1W5O1dfcFju/crJYQ9NA5gRpw7gPnxtgwO55fz5BVDXXZn9atG9iE6xJeXVx1Ca9vdhX+5I4t6q+7W5ZNGowdEkUZ/1Am5AxfC8XJSwbMHhPzYJrWsuo5//nCQcdHBXBbX28TgOsfdzcJD0wawJ6uENQfzbXJOrTWfJmcypl8QA3v1sMk5XZmPpxvHfEfRu3SPseVcKySBC2Fr2TuMFZiWH5eBv7HmMAVlNfz2KudetNMW1ydEEhHozcsrbXMXnppxmvS8si6960571UWOx0dXUZWZ2upxksCFsKX6Wji5+5z698niKt5ad4RrRkcQHxVkYnC24elu4YGLB5B8/BRbjhZ1+nyLkjPx9rBw1SjH7wHqrMLipgKQvWt1q8dJAhfClvLTjA0czlrA89zyA1it8MRM11i00xa3jI0itIcXr6zq3ObHlTX1LNmZzZUj+7jcrBx7GhUXR4YOo/bYxlaPkwQuhC2dGcA07sD3ZZeweHsm8y7qT1Rw19mYwNvDjXunxLAuvYDUjNMdPs+3e3More7amxZ3RA8vdw55j6DXqR3QSplKErgQtpSdCl4BEGzsrPPMN/sJ8Pbg0emDTA7M9u6c0J9AHw9eXtn2u/Dckiq+35fLc8sPMO+drfzxy730C/ZlfEywHSN1TVXhSfS0nqI6v+XNpZ1n+w8huoIzA5gW1hzMZ116Ab+/ahiBvl2vPNDDy527J0Xzzx/SSTtZwtDwgHOeLyirZndmMbsyi9mddZpdmcXklVYDYFEwuLc/s0aEM3dif5cf2LWHoKEXw/G/k7FzVYvHSAIXwlbqaiB3D4x/EIB31h+lT6A3cyf2Nzkw+5l/UTRvrT3CP79P544J/YxknVnM7qxisk5XAqAUxIb6MXlgKCMjAxkVGUhcn0B8PLvPZg0dETdqHMXf+lJ1eEOLx0gCF8JW8vZBfQ1ExJNXWsW69HwemjYAL/eum6iCfD25c2J/3lhzhG/3Gqszo0N8GdO/J/MvimZkZCDDIwJkgLIDAv282OoRR9+ClBaPkQQuhK2cNYD5dWo2Vk23aIv62IxB9A3yITa0ByP7BnbJcpFZSnolMS779Rafl0FMIWwlJxW8A6FnDF+mZjGybyADezW/nVpX0sPLnbsmRjN5UKgkbxvrMWhyq89LAhfCVrJ3QEQC6Xll7Mkq6RZ338K+BsVPoUa3XIKTBC6ELdRWQe4+iEjg8x1ZuFkU14yOMDsq4eJCegbxdeI7LT7fqQSulApSSi1WSqUppfYrpSZ25nxCuKy8vWCtxRoez1c7spgyKJQw/+65q4ywrZuund3ic529A38B+FZrPRQYDezv5PmEcE3ZRtOh1PoYsourpHwiHKLDs1CUUgHAVGA+gNa6BqixTVhCuJjsHeATzMcHNX6eblweF252RKIb6MwdeCyQDyxQSu1QSv1LKeV3/kFKqfuVUslKqeT8fNv0DxbC6WSnUt8nnm/25DJrRB9ZpCIcojMJ3B0YA7ymtU4AyoEnzz9Ia/2m1jpJa50UFtbN97oTXVNtJeTt44jHIEqr67hhjJRPhGN0JoFnApla6y0NXy/GSOhCdC8n94Cu57uiPoQHeDMhNsTsiEQ30eEErrU+CWQopRqbHF8C7LNJVEK4khxjAPOTrFCui4/AzSKNmYRjdHYp/WPAQqWUJ3AEuLvzIQnhYrJ3UOkZTEZVT66X8olwoE4lcK11KpBko1iEcE3ZO9jLAIb1CWzSUlUIe5KVmEJ0Rk05Oj+NDRWRXJ8gKy+FY0kCF6IzTu5BaSt7dCzXxUv5RDiWJHAhOkFnbwfAu38SvQO8TY5GdDfSD1yITihM30K9DmJ60iizQxHdkNyBC9EJ1kxjAHPmcFk6LxxPErgQHVRdfprQ6uNUh43Ez0vezArHkwQuRAelbl2HBU3k8ElmhyK6KUngQnTQ8T3GbuHDxkwxORLRXUkCF6IDTlfU4J2/i2KPXrgH9jE7HNFNSQIXogOW7MphOEdQEQlmhyK6MUngQnTAdykHGWDJwT9WOkkI80gCF6KdThRWUJtldCBUEdJBWZhHErgQ7fTFjixGqiPGFxHx5gYjujVJ4EK0g9aaL3ZkMt0/CwL7gV+o2SGJbkwSuBDtkJpxmmOFFYy0HJG7b2E6SeBCtMMXO7IIc6/AvyJDErgwnSRwIdqops7Kf3ZmMzf6tPGATCEUJpMELkQbrT2Yz6mKWq4MPmk80EfuwIW5JIEL0UZf7Mgi2M+T2Np06BkNvsFmhyS6OUngQrRBcWUt3+/P5ZpRfbDk7JC7b+EUJIEL0Qbf7smhps7KTXF+cPqE1L+FU5AELkQbfL49i9hQP0acWcAjCVyYTxK4EBeQeaqCLUeLmJ3QF5W9w3iwz2hzgxICSeBCXNBXqdkAXJ/QF7J3QPAA8AkyOSohJIEL0Spj6XwWY6N7EhXsC9mpsoBHOA1J4EK0Yl9OCYfyypid0BfK8qEkU+rfwmlIAheiFUt35eBmUVwxog/kGC1kJYELZyEJXIgWaK1ZtjuHibEhBPt5GvVvFISPMjs0IQBJ4EK0aH9OKccKK7hyZMOel9k7IHQQeAeYG5gQDTqdwJVSbkqpHUqpJbYISAhnsWy3UT6ZOby38UB2qqzAFE7FFnfgjwP7bXAeIZxGY/lkQmwwIT28oPQklGZL/Vs4lU4lcKVUJHAV8C/bhCOEc0g7WcqRgnJj8BKMu2+QBC6cSmfvwP8JPAFYWzpAKXW/UipZKZWcn5/fycsJ4RjLdudgUTBrRLjxQPYOUBYIH2luYEKcpcMJXCl1NZCntU5p7Tit9Zta6yStdVJYWFhHLyeEw2itWbo7h/ExIYT28DIezN4BoUPAq4e5wQlxls7cgU8CrlVKHQM+BmYopT6wSVRCmOhAbilH8su5clRD+URrYw64rMAUTqbDCVxr/RutdaTWOhq4FViptb7TZpEJYZJluxrKJ8MbyielOVCWK/Vv4XQcOw+8tsqhlxOivRrLJ+NiggnzP6t8ApLAhdOxSQLXWq/WWl99wQNLMm1xOSHs5mBuGYfzy7mqcfEONAxgukHvEeYFJkQzHHsHXl0KBYccekkh2mPp7hyUgpmNs0/ASOBhQ8HT17zAhGiGYxO4UrD9PYdeUoj2WLY7h3HRwfTy9zYe0LqhhayUT4TzcWwC9w6E1IVQV+3QywrRFgdzSzmUV8ZVo84qn+SnQUWBzEARTsmxCdw3BCoKIU3apgjns3SXUT6ZdXb5ZNMr4O4Dw683LzAhWuDYBO4VAEH9IOVdh15WiLZYtjuHsWeXT0pyYNcnkHAn+IWaG5wQzXB8O9kx8+DoWig87PBLC9GS9NxS0vPKzp19suV1sNbBxEfMC0yIVjg+gSfcaUzJkrtw4UQaZ59c0Vg+qSqB5HcgbjYEx5gbnBAtcHwC9w+HIVfIYKZwKst25zC2fzC9AhrKJynvQnUJTPqpqXEJ0RpzduRJvLthMHOpKZcX4myH8ko5mFvGlSMb7r7ramDzqxAzVaYPCqdmTgIfMAMC+0HKAlMuL8TZlu46aZRPGuvfuz81+p9MetzcwIS4AIcm8LzShpKJxQKJd8lgpnAKy3bnkNS/J70DvMFqhY0vGsvmB1xidmhCtMqhCTy/tJpT5TXGF/ENg5myMlOY6FBeGQdyS3/cuDh9ubF4Z9LjxsphIZyYQxO4VWveWHvE+CKgjzGYuWOhUXMUwgTLducA/Lh12oYXIDBKFu4Il+DQBB7k48F7G49RUNZQSkm821imLCszhUkayyfhgd6QsRVObDTmfbt5mB2aEBfk0ATeK8Cb6rp6Xl/dUPceML1hMPNdR4YhBACH88tIO1n64+DlhhfAOwgS5pobmBBt5NAE7uVu4fqESN7ffJzckiqwuMGYu+DoGhnMFA63bJdRPrlyZDgUpBvTWsfdJ/teCpfh8GmEj18yiHqr5tVVDX3BE2QwU5hj6e4cxvQLok+gD2x8Cdw8YdwDZoclRJs5PIH3C/FlTlIkH23NIOt0pQxmClMcaSifXDmyD5Tmws6PIOEO6BFmdmhCtJkpC3kenTEIgJdXNtyFJ843BjMPyMpM4RiNs0+uHNnHaFpVXwsTHzU5KiHax5QE3jfIh1vHRfFpcgYnCisaVmZGyWCmcJhlu0+S0C+ICJ862PY2xF0LIQPMDkuIdjFnKT3wyPSBWCyKF1emNwxmzoMjq2UwU9jdsYJy9uWUGK1jU96D6mJZNi9ckmkJvHeAN3eO78/n2zM5kl9m1B+VG2z/t1khiW5iaePinbgQo2lV9BTom2hyVEK0n2kJHOChaQPwcnfjhRXpEBABg2c1tJmVwUxhP8t25xAfFUTfjGVQkiV338JlmZrAw/y9uOui/ny9M5v03FJjMLM8XwYzhd0cLyxnb3YJV40INxbu9IqDgZeaHZYQHWJqAgd4YOoAfD3c+OcP6TDwEhnMFHbVWD653n8f5O+XplXCpZmewIP9PPnJ5BiW7s5h38lyY2XmkdVQdMTs0EQXtGx3DqOjggjd+ToERMKIG80OSYgOMz2BA9w7ORZ/b3f+8cPBs/bMlJWZwrZOFFawJ6uE+f3y4fh6mPiwNK0SLs0pEnigrwf3TYnl+3257CrxlcFMYReN5ZOZpxeBd6Dxbk8IF+YUCRzg7knRBPl68Pz3B88azFxmdliiC1m2O4eZfcrxPbwMxt4LXv5mhyREp3Q4gSulopRSq5RS+5VSe5VSnZqL5e/twQNTB7D6QD4pHmOM+qQMZgobOVFYwe6sYn7q8500rRJdRmfuwOuAX2ithwETgEeUUnGdCWbeRf0J7eHJ8ysONQxmrpLBTGETS3fnEEoxcbn/gfjbwL+32SEJ0WkdTuBa6xyt9faGz0uB/UDfzgTj6+nOgxcPYMOhQlJCrwZlkZWZotN2Zpzm5ZXp/CZkLaq+BiY+ZnZIQtiETWrgSqloIAHY0tlz3TmhP738vfjr+hL04Jmw4wMZzBQddiivlPkLthLhW8/1dd/AsKshdKDZYQlhE51O4EqpHsBnwH9prUuaef5+pVSyUio5Pz//gufz9nDjkekD2XqsiL19bpDBTNFhmacquPNfW3GzWPhkzF4s1adh0n+ZHZYQNtOpBK6U8sBI3gu11p83d4zW+k2tdZLWOiksrG3N8m8dF0VEoDdP7Q1Hy2Cm6ID80mrmvr2VippalibtIHjj/8LAyyAyyezQhLCZzsxCUcDbwH6t9fO2Cwm83N14dMYgUjJKOdbvBmMwM2ObLS8hurCSqlrmvbOVvOIyVgz5mt6bn4a46+CW980OTQib6swd+CRgLjBDKZXa8O9KG8XFnKRIooJ9+GPWOHRQP/j3tXDgG1udXnRRlTX13PtuMjl5uayLfIOwAwth8s/gpgXg4WN2eELYVGdmoazXWiut9SitdXzDP5sVqz3cLPx0xiDW5VhYPeVDCBsCH98OW9+y1SVEF1Nbb+XhhSlkHk9nTchfCT65Aa55ES79E1icZs2aEDbj1L/V1yf0JTbUj7+uO4X1riUwaCYs+yUs/z1YrWaHJ5yI1ar5xaKd5B/cwg8B/01A9Um4czEkzjM7NCHsxqkTuLubhccvHUTayVJue283B6e/DmPvg40vweK7obbK7BCFE9Ba89TXe6nY/R++8HkaX28fuGe5sdeqEF2YUydwgGtHR/DMDSM5kFvKlS9t5H/03VTP+G/Y96VRFy8vNDtEYbLnlx/AY9vrvOX5PO7hcXDvD9BrmNlhCWF3Tp/AlVLcNq4fK38xjTlJkfxrwzGmrh9O8rh/oLNT4e3LZCPkbuztNQcJXfd7/ujxPgy9CjV/qSyTF92G0yfwRsF+njxzwyg+f+gievl7c9Pa3vy55zPUVxQZSTxjq9khCgf7YnMaMT/cxzz377FOfAx18/vg6Wt2WEI4jMsk8EYJ/Xry5SOTeHr2CL4ojOLykj9wqt4H/d41sO9rs8MTDrJ6WypDlt3MxW67qL3iOSwzn5aZJqLbccnfeDeL4s4J/Vn5i4tJHJPEJcW/Z099P/Siu9CbXjE7PGFnO7euYdiS2US75VF7yyd4jL/X7JCEMIVLJvBGIT28+NtNo3nroVn8IfAZvq1PQn33W05//nOw1psdnrCDIxs+Y9DSOSiLG3Xzv8V72OVmhySEaZTW2mEXS0pK0snJyXY5d129lQ83H4Xv/8BdLCW951T63rsQX78Au1xP2JfWmqLyGjKyc6hIX4tX5gbCC7fSt+YIaWoAIfd9QVhEf7PDFMIhlFIpWusmjXy6TAJvlF9azfoPnua6ky+x3zKQXZNfoXffaPoG+RIR5I2/t203sa2uqyfrVCUniirIOFVJRlEFxRW1eLgrPNwseLpb8HKznPm88aOnuwXPxscsEFRxjKDifYSGR9Fz4ATw7vp/eLTWFJbXcLywnKMFFRwvLCcrr4AeuclElySTqPcwQh3FTWmqtAe73eI4HjiWcbc8Sb/wtjVGE6Ir6DYJvFH6mo+JWvUY3tRQrr3I00HkE8QpS08qPcOo9+uF8u+NV1AEfqGRBPeOond4BGH+Plgs6sx5rFZNXmm1kaCLKsg4VcGJogoyi4yknVtaxdkvoaebhZ5+HtTVa2rqrFTXW6mpO3fVaBClxFsOkWA5RII6RLzlMAGq4sdrosj2iKY4ZDTu/cYSHjeFwH4jwOJm99fNHqxWTcapCg6cLCU9r4wDJ0s5UlDG8YIKaqorSLAcYqJlL5Ms+4i3HMKdeuqUOwWBo6jsOwmvwdMIHTIJT2/pZSK6p26XwAF07l7K9nxDRVEWdadzUOV5eFbm4VdTiI+uaHJ8rXajkEBOuQVT7hFMjrUnx6p7kFMfRK4OIk/3JJ8g3P17ExHsT1SwL1HBPkT19KVfiC9RPX3p5e91zh8A6mvRJ/dgzdiKztiGyk7B7ZSxTZxWFqqDh1IelkBpaDxFAcPJyzmGzthG8KldDKlLI0iVA1CODxm+w6gMi8cndiJRI6fgF9zHvi9gTQUUZ0JxxrkfT2cYn5fng7s3ePqBpx/aw5caiw+lVk9O13lSUONObpU72RUWSus9KcebCrzw8fVnpG8RY+p3079iN+7WarSyoPskYImdCtFToN8E47xCiO6ZwFtVUw5luVQUZnEqL5PywkyqT+egS3Nxr8jDt7qAYH0K//rTKM5/jRT4hRkLRvz7QI/e4B9u/OsRDtZayEw2/uWkQl3Dkv8evSFyrNGTOnIs9IkHrx4thlhcUcPhtJ2cOrgR95wUepfsYYD1GB7KGKDNUb3J8R9JbZ8x+PUbhcWt/eUhpTXu1UV4lmXjVZ6FZ3k2XmXGR4/qonOO1cpCjW84NX4RVPv1pcozmJLycirLSqiuLMVaVYanrsKPKnyoxt9SjZ+qxltXYaGZ3jW9R0LMFIiZCv0vAu/AdscvRHcgCbyj6muhLA/KTkJpLpTmQFnDx9LchsdPGnej+qwk5eYFEfFGou6baHwMjASlWr5WGxScOsWJPZsoO7wJn7xUoir2Eo5t2gmUaW+ydCjZOoRsHUqWDiXrrM9z6Uk9Tcs4IX6eDO7tz+DePRgc7m983sufQN+GPyhaQ1218Uezttz46NcL/EJsErcQXZ0kcHurr4OKAiOxA/QaDu6edr+s1prcrKMUHNsDHfxvWesdTLVvBPWeAe36A+PhZiE2zI/QHl4duq4Qom1aSuDuZgTTJbm5/1hGcSClFOGRsYRHxjr0ukII87n0Qh4hhOjOJIELIYSLkgQuhBAuShK4EEK4KEngQgjhoiSBCyGEi5IELoQQLsqhC3mUUqXAAYdd0DWFAgVmB+Hk5DVqnbw+F+Zqr1F/rXWTFpyOXshzoLnVROJHSqlkeY1aJ69R6+T1ubCu8hpJCUUIIVyUJHAhhHBRjk7gbzr4eq5IXqMLk9eodfL6XFiXeI0cOogphBDCdqSEIoQQLkoSuBBCuCiHJHCl1Cyl1AGl1CGl1JOOuKarUUodU0rtVkqlKqW66K4X7aOUekcplaeU2nPWY8FKqe+VUukNH3uaGaPZWniN/qSUymr4XUpVSl1pZoxmUkpFKaVWKaX2K6X2KqUeb3i8S/we2T2BK6XcgFeAK4A44DalVJy9r+uipmut47vC/FQbeReYdd5jTwIrtNaDgBUNX3dn79L0NQL4R8PvUrzWepmDY3ImdcAvtNbDgAnAIw35p0v8HjniDnwccEhrfURrXQN8DFzngOsKF6e1XgsUnffwdcB7DZ+/B8x2aFBOpoXXSDTQWudorbc3fF4K7Af60kV+jxyRwPsCGWd9ndnwmDiXBpYrpVKUUvebHYwT6621zgHjf06gl8nxOKtHlVK7GkosLlkesDWlVDSQAGyhi/weOSKBN7dLrsxdbGqS1noMRqnpEaXUVLMDEi7rNWAAEA/kAM+ZG475lFI9gM+A/9Jal5gdj604IoFnAlFnfR0JZDvgui5Fa53d8DEP+AKj9CSaylVK9QFo+JhncjxOR2udq7Wu11pbgbfo5r9LSikPjOS9UGv9ecPDXeL3yBEJfBswSCkVo5TyBG4FvnbAdV2GUspPKeXf+DlwObCn9e/qtr4G5jV8Pg/4ysRYnFJjYmpwPd34d0kppYC3gf1a6+fPeqpL/B45ZCVmwzSmfwJuwDta6/+x+0VdiFIqFuOuG4wOkR/KawRKqY+AaRitP3OBp4AvgUVAP+AEMEdr3W0H8Vp4jaZhlE80cAx4oLHe290opSYD64DdgLXh4d9i1MFd/vdIltILIYSLkpWYQgjhoiSBCyGEi5IELoQQLkoSuBBCuChJ4KLbU0pNU0pdZONzxnfnJlLCMSSBiy5FKdWRjbqnATZN4BjT+CSBC7uSaYTC5Sil7gJ+iTHPeRdQj9HQKQHYDryK0QEzDKgA7tNapymlrgF+D3gChcAdgA+wueEc+cBjQBrwOsYcYTCWX29oIZZxGGscfIBK4G7gKHCo4bEs4Bmt9Se2ewWEMEgCFy5FKTUc+Byjd0yBUioYeB5jIct1Wut6pdQK4EGtdbpSajxGAp3R0NTptNZaK6XuBYZprX+hlPoTUKa1frbhGh8Cr2qt1yul+gHfNbQjbS6eAKBCa12nlLoUeEhrfaNSaj6QpLV+1K4viOjWOvJ2UwgzzQAWa60LALTWRcZqaT5tSN49MMohnzY8DuDV8DES+KRhqbknxp1ycy4F4s76/gCllH9DO9LzBQLvKaUGYbwj8OjUTydEO0gCF65G0Xw3y/KGjxaMu+z4Zo55CXhea/21Umoa8KcWrmEBJmqtK9sQz1+AVVrr6xvala5uw/cIYRMyiClczQrgZqVUCBhbY539ZEOr0KNKqTkNzyul1OiGpwMxatLwYyMjgFLA/6yvlwNnSh9Kqeb+GDQ6+5zzWzmnEDYnCVy4FK31XuB/gDVKqZ0Y9e/z3QHc0/D8Xn7cAepPGKWVdUDBWcf/B7i+Yf/IKcBPgaSGDRH2AQ+2EtLfgGeUUhswmrU1WoVRhklVSt3S7h9UiDaQQUwhhHBRcgcuhBAuSgYxhWgDpdTdwOPnPbxBa/2IGfEIAVJCEUIIlyUlFCGEcFGSwIUQwkVJAhdCCBclCVwIIVyUJHAhhHBRksCFEMJF/T/Vj43orMqrtgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.groupby(['isweekend', data.index.hour])['count'].mean().unstack(level=0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 作业二"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pymysql\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "conn = pymysql.connect(host='127.0.0.1',user='root',password='',db='doubandb', charset='utf8')\n",
    "sql = 'select * from books'\n",
    "data = pd.read_sql(sql, conn)\n",
    "conn.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id            7805\n",
       "title         7805\n",
       "author        7805\n",
       "press         7805\n",
       "original      7805\n",
       "translator    7805\n",
       "imprint       7805\n",
       "pages         7805\n",
       "price         7805\n",
       "binding       7805\n",
       "series        7805\n",
       "isbn          7805\n",
       "score         7805\n",
       "number        7569\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>200403</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1000134</td>\n",
       "      <td>三毛流浪记全集</td>\n",
       "      <td>张乐平</td>\n",
       "      <td>少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>200181</td>\n",
       "      <td>261</td>\n",
       "      <td>30.0</td>\n",
       "      <td>平装(无盘)</td>\n",
       "      <td></td>\n",
       "      <td>9787532446674</td>\n",
       "      <td>9.0</td>\n",
       "      <td>602.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id    title      author    press original translator imprint  pages  \\\n",
       "0  1000121      昆虫记  [法]J·H·法布尔    作家出版社                  王光  200403    352   \n",
       "1  1000134  三毛流浪记全集         张乐平  少年儿童出版社                      200181    261   \n",
       "\n",
       "   price binding series           isbn score  number  \n",
       "0   19.0      平装         9787506312820   8.6  5019.0  \n",
       "1   30.0  平装(无盘)         9787532446674   9.0   602.0  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id              0\n",
       "title           0\n",
       "author          0\n",
       "press           0\n",
       "original        0\n",
       "translator      0\n",
       "imprint         0\n",
       "pages           0\n",
       "price           0\n",
       "binding         0\n",
       "series          0\n",
       "isbn            0\n",
       "score           0\n",
       "number        236\n",
       "dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id              0\n",
       "title           0\n",
       "author          0\n",
       "press           0\n",
       "original        0\n",
       "translator      0\n",
       "imprint         0\n",
       "pages           0\n",
       "price           0\n",
       "binding         0\n",
       "series          0\n",
       "isbn            0\n",
       "score           0\n",
       "number        236\n",
       "dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#number（评论数）存在空值，将其设置为0\n",
    "data.fillna('0000')\n",
    "data.fillna({'number':0000})\n",
    "data.dropna()\n",
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.分析书的数量与年份的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "data02 = data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将imprint中的中文替换\n",
    "#data02['imprint'] = data02['imprint'].replace('[^\\x00-\\xff]', '-', regex = True)\n",
    "data02[data02['imprint'].str.contains('年')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>200403</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1000134</td>\n",
       "      <td>三毛流浪记全集</td>\n",
       "      <td>张乐平</td>\n",
       "      <td>少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>200181</td>\n",
       "      <td>261</td>\n",
       "      <td>30.0</td>\n",
       "      <td>平装(无盘)</td>\n",
       "      <td></td>\n",
       "      <td>9787532446674</td>\n",
       "      <td>9.0</td>\n",
       "      <td>602.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id    title      author    press original translator imprint  pages  \\\n",
       "0  1000121      昆虫记  [法]J·H·法布尔    作家出版社                  王光  200403    352   \n",
       "1  1000134  三毛流浪记全集         张乐平  少年儿童出版社                      200181    261   \n",
       "\n",
       "   price binding series           isbn score  number  \n",
       "0   19.0      平装         9787506312820   8.6  5019.0  \n",
       "1   30.0  平装(无盘)         9787532446674   9.0   602.0  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [],
   "source": [
    "#替换数据\n",
    "#data03 = data02\n",
    "#data03['imprint'] = data03['imprint'].replace('[^\\-]', '', regex = True)\n",
    "#data03[data03['imprint'].str.contains('-')]\n",
    "#data03['imprint']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [],
   "source": [
    "#替换数据\n",
    "#data03 = data02\n",
    "#data03['imprint'] = data03['imprint'].replace('-', '')\n",
    "#data03[data03['imprint'].str.contains('1996-9-')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>1000594</td>\n",
       "      <td>旋转木马鏖战记</td>\n",
       "      <td>[日]\\n            村上春树</td>\n",
       "      <td>上海译文出版社</td>\n",
       "      <td></td>\n",
       "      <td>林少华</td>\n",
       "      <td>20029</td>\n",
       "      <td>133</td>\n",
       "      <td>12.0</td>\n",
       "      <td>平装</td>\n",
       "      <td>村上春树文集</td>\n",
       "      <td>9787532729210</td>\n",
       "      <td>7.9</td>\n",
       "      <td>3765.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>232</td>\n",
       "      <td>1033273</td>\n",
       "      <td>海蒂性学报告</td>\n",
       "      <td>[美]雪儿·海蒂</td>\n",
       "      <td>海南出版社</td>\n",
       "      <td>Women and Love: A Cultural Revolution in Progress</td>\n",
       "      <td>林淑贞</td>\n",
       "      <td>20029</td>\n",
       "      <td>877</td>\n",
       "      <td>58.0</td>\n",
       "      <td>平装</td>\n",
       "      <td>海蒂性学报告</td>\n",
       "      <td>9787544305495</td>\n",
       "      <td>7.9</td>\n",
       "      <td>1570.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          id    title                 author    press  \\\n",
       "6    1000594  旋转木马鏖战记  [日]\\n            村上春树  上海译文出版社   \n",
       "232  1033273   海蒂性学报告               [美]雪儿·海蒂    海南出版社   \n",
       "\n",
       "                                              original translator imprint  \\\n",
       "6                                                             林少华   20029   \n",
       "232  Women and Love: A Cultural Revolution in Progress        林淑贞   20029   \n",
       "\n",
       "     pages  price binding  series           isbn score  number  \n",
       "6      133   12.0      平装  村上春树文集  9787532729210   7.9  3765.0  \n",
       "232    877   58.0      平装  海蒂性学报告  9787544305495   7.9  1570.0  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02[data02['imprint'].str.contains('20029')].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       False\n",
       "1       False\n",
       "2       False\n",
       "3       False\n",
       "4       False\n",
       "        ...  \n",
       "7800    False\n",
       "7801    False\n",
       "7802    False\n",
       "7803    False\n",
       "7804    False\n",
       "Name: imprint, Length: 7805, dtype: bool"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#data02[data02['imprint'] == '20029']['imprint'] ='20020901'\n",
    "data02['imprint'] == '20029'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data02[data02['imprint'] == '20029'].imprint ='20020901'\n",
    "data02.loc[data02['imprint'] == '20029']\n",
    "data02.loc[6,'imprint'] = '20020901'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "#处理特殊日期值\n",
    "data02.loc[data02['imprint'] == '20029']['imprint']\n",
    "for i in data02.loc[data02['imprint'] == '20029']['imprint'].index:\n",
    "    data02.loc[i,'imprint'] = '20020901'\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12      20016\n",
       "13      20031\n",
       "14      20025\n",
       "15      20019\n",
       "18      19945\n",
       "        ...  \n",
       "7797    20179\n",
       "7798    20179\n",
       "7800         \n",
       "7802    20193\n",
       "7803    20192\n",
       "Name: imprint, Length: 3872, dtype: object"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[data02['imprint'].str.len() <6]['imprint']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'200106'"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[12,'imprint'][0:4]+'0'+data02.loc[12,'imprint'][4:6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "#处理长度小于6的日期\n",
    "for i in data02.loc[data02['imprint'].str.len() <6]['imprint'].index:\n",
    "    data02.loc[i,'imprint'] = data02.loc[i,'imprint'][0:4]+'0'+data02.loc[i,'imprint'][4:6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       200403\n",
       "1       200181\n",
       "2       200403\n",
       "3       200212\n",
       "4       200301\n",
       "         ...  \n",
       "7798    201709\n",
       "7800         0\n",
       "7802    201903\n",
       "7803    201902\n",
       "7804    201921\n",
       "Name: imprint, Length: 6626, dtype: object"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[data02['imprint'].str.len() <7]['imprint']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       False\n",
       "1        True\n",
       "2       False\n",
       "3       False\n",
       "4       False\n",
       "        ...  \n",
       "7798    False\n",
       "7800    False\n",
       "7802    False\n",
       "7803    False\n",
       "7804     True\n",
       "Name: imprint, Length: 6626, dtype: bool"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[data02['imprint'].str.len() <7]['imprint'].str[4:6] > '12' "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       False\n",
       "1        True\n",
       "2       False\n",
       "3       False\n",
       "4       False\n",
       "        ...  \n",
       "7800    False\n",
       "7801     True\n",
       "7802    False\n",
       "7803    False\n",
       "7804     True\n",
       "Name: imprint, Length: 7805, dtype: bool"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02['imprint'].str[4:6] > '12' "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4    True\n",
       "5    True\n",
       "Name: imprint, dtype: bool"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[:,'imprint'][4:6] > '12'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>200403</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1000134</td>\n",
       "      <td>三毛流浪记全集</td>\n",
       "      <td>张乐平</td>\n",
       "      <td>少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>200181</td>\n",
       "      <td>261</td>\n",
       "      <td>30.0</td>\n",
       "      <td>平装(无盘)</td>\n",
       "      <td></td>\n",
       "      <td>9787532446674</td>\n",
       "      <td>9.0</td>\n",
       "      <td>602.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1000317</td>\n",
       "      <td>一个狗娘养的自白</td>\n",
       "      <td>(美)艾伦.纽哈斯</td>\n",
       "      <td>东方出版社</td>\n",
       "      <td>Confessions of an S.O.B</td>\n",
       "      <td>李斯</td>\n",
       "      <td>200403</td>\n",
       "      <td>291</td>\n",
       "      <td>25.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506018586</td>\n",
       "      <td>7.8</td>\n",
       "      <td>250.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1000323</td>\n",
       "      <td>电视人</td>\n",
       "      <td>[日]\\n            村上春树</td>\n",
       "      <td>上海译文出版社</td>\n",
       "      <td></td>\n",
       "      <td>林少华</td>\n",
       "      <td>200212</td>\n",
       "      <td>134</td>\n",
       "      <td>12.0</td>\n",
       "      <td>平装</td>\n",
       "      <td>村上春树文集</td>\n",
       "      <td>9787532729951</td>\n",
       "      <td>7.7</td>\n",
       "      <td>3685.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1000445</td>\n",
       "      <td>时间简史</td>\n",
       "      <td>史蒂芬・霍金</td>\n",
       "      <td>湖南科学技术出版社</td>\n",
       "      <td></td>\n",
       "      <td>吴忠超、许明贤</td>\n",
       "      <td>200301</td>\n",
       "      <td>186</td>\n",
       "      <td>12.8</td>\n",
       "      <td>平装</td>\n",
       "      <td>第一推动丛书</td>\n",
       "      <td>9787535710659</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5660.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>1000531</td>\n",
       "      <td>第二次世界大战回忆录（全六卷）</td>\n",
       "      <td>[英]温斯顿·丘吉尔</td>\n",
       "      <td>南方出版社</td>\n",
       "      <td></td>\n",
       "      <td>吴万沈等</td>\n",
       "      <td>200341</td>\n",
       "      <td>2975</td>\n",
       "      <td>298.0</td>\n",
       "      <td>精装</td>\n",
       "      <td></td>\n",
       "      <td>9787806608050</td>\n",
       "      <td>8.7</td>\n",
       "      <td>723.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id            title                 author      press  \\\n",
       "0  1000121              昆虫记             [法]J·H·法布尔      作家出版社   \n",
       "1  1000134          三毛流浪记全集                    张乐平    少年儿童出版社   \n",
       "2  1000317         一个狗娘养的自白              (美)艾伦.纽哈斯      东方出版社   \n",
       "3  1000323              电视人  [日]\\n            村上春树    上海译文出版社   \n",
       "4  1000445             时间简史                 史蒂芬・霍金  湖南科学技术出版社   \n",
       "5  1000531  第二次世界大战回忆录（全六卷）             [英]温斯顿·丘吉尔      南方出版社   \n",
       "\n",
       "                  original translator imprint  pages  price binding  series  \\\n",
       "0                                  王光  200403    352   19.0      平装           \n",
       "1                                      200181    261   30.0  平装(无盘)           \n",
       "2  Confessions of an S.O.B         李斯  200403    291   25.0      平装           \n",
       "3                                 林少华  200212    134   12.0      平装  村上春树文集   \n",
       "4                             吴忠超、许明贤  200301    186   12.8      平装  第一推动丛书   \n",
       "5                                吴万沈等  200341   2975  298.0      精装           \n",
       "\n",
       "            isbn score  number  \n",
       "0  9787506312820   8.6  5019.0  \n",
       "1  9787532446674   9.0   602.0  \n",
       "2  9787506018586   7.8   250.0  \n",
       "3  9787532729951   7.7  3685.0  \n",
       "4  9787535710659   8.6  5660.0  \n",
       "5  9787806608050   8.7   723.0  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.head(6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#得到月份大于12的日期的索引\n",
    "s = pd.Series(data02['imprint'].str[4:7] > '12')\n",
    "data02[s.values]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'20030401'"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02[s.values].index\n",
    "data02.loc[5,'imprint'][0:4]+'0'+data02.loc[5,'imprint'][4:5]+'01'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "#处理月份大于12的日期\n",
    "for i in data02[s.values].index:\n",
    "    data02.loc[i,'imprint'] = data02.loc[i,'imprint'][0:4]+'0'+data02.loc[i,'imprint'][4:5]+'01'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "#处理日期为0\n",
    "s1 = pd.Series(data02['imprint'] == '0')\n",
    "s1.values\n",
    "data02[s1.values].index\n",
    "for i in data02[s1.values].index:\n",
    "    data02.loc[i,'imprint'] = '20200101'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([], dtype='int64')"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1 = pd.Series(data02['imprint'] == '0')\n",
    "s1.values\n",
    "data02[s1.values].index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>1588</td>\n",
       "      <td>2065008</td>\n",
       "      <td>三隻眼(01)</td>\n",
       "      <td>高田裕三</td>\n",
       "      <td>尖端</td>\n",
       "      <td></td>\n",
       "      <td>鳥山亂</td>\n",
       "      <td>民83001</td>\n",
       "      <td>246</td>\n",
       "      <td>90.0</td>\n",
       "      <td>平装</td>\n",
       "      <td>三隻眼</td>\n",
       "      <td>9789577126016</td>\n",
       "      <td>8.6</td>\n",
       "      <td>723.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id    title author press original translator imprint  pages  price  \\\n",
       "1588  2065008  三隻眼(01)   高田裕三    尖端                 鳥山亂  民83001    246   90.0   \n",
       "\n",
       "     binding series           isbn score  number  \n",
       "1588      平装    三隻眼  9789577126016   8.6   723.0  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#处理长度小于7的日期\n",
    "data02.loc[data02['imprint'].str.len() <7]\n",
    "for i in data02.loc[data02['imprint'].str.len() <7].index:\n",
    "    data02.loc[i,'imprint'] = data02.loc[i,'imprint']+'01'\n",
    "data02.loc[data02['imprint'].str.len() <7]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#处理长度小于8的日期\n",
    "data02.loc[data02['imprint'].str.len() ==7].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for i in data02.loc[data02['imprint'].str.len() ==7].index:\n",
    "    data02.loc[i,'imprint']=data02.loc[i,'imprint'][0:5] + '1' +data02.loc[i,'imprint'][5:7]\n",
    "data02.loc[data02['imprint'].str.len() ==7]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'20200101'"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#data02.loc[data02['imprint'].str.len() >8]\n",
    "data02.loc[1588,'imprint'] = '20200101'\n",
    "data02.loc[1588,'imprint']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>320</td>\n",
       "      <td>1047719</td>\n",
       "      <td>傅雷家书</td>\n",
       "      <td>傅敏</td>\n",
       "      <td>生活·读书·新知三联书店</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>1990.12.3</td>\n",
       "      <td>458</td>\n",
       "      <td>18.8</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787108001252</td>\n",
       "      <td>8.5</td>\n",
       "      <td>7729.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>919</td>\n",
       "      <td>1382836</td>\n",
       "      <td>傾城</td>\n",
       "      <td>三毛</td>\n",
       "      <td>皇冠文化出版有限公司</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>1985/03/01</td>\n",
       "      <td>256</td>\n",
       "      <td>170.0</td>\n",
       "      <td></td>\n",
       "      <td>三毛全集</td>\n",
       "      <td>9789573305866</td>\n",
       "      <td>8.7</td>\n",
       "      <td>3816.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          id title author         press original translator     imprint  \\\n",
       "320  1047719  傅雷家书     傅敏  生活·读书·新知三联书店                       1990.12.3   \n",
       "919  1382836    傾城     三毛    皇冠文化出版有限公司                      1985/03/01   \n",
       "\n",
       "     pages  price binding series           isbn score  number  \n",
       "320    458   18.8      平装         9787108001252   8.5  7729.0  \n",
       "919    256  170.0           三毛全集  9789573305866   8.7  3816.0  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[data02['imprint'].str.len() >8].head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#处理带.的日期\n",
    "for i in data02[data02['imprint'].str.contains(r'^[0-9]{4}\\.[0-9]{3}$')].index:\n",
    "    data02.loc[i,'imprint']=data02.loc[i,'imprint'][0:4] + '0' +data02.loc[i,'imprint'][5:8]\n",
    "data02[data02['imprint'].str.contains(r'^[0-9]{4}\\.[0-9]{3}$')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'101'"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02.loc[1071,'imprint'][5:8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [],
   "source": [
    "data02.loc[2235,'imprint'] ='20000701'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02[data02['imprint'].str.contains(r'^[\\u4e00-\\u9fa5]+[0-9]+$')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, title, author, press, original, translator, imprint, pages, price, binding, series, isbn, score, number]\n",
       "Index: []"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data02[data02['imprint'].str.contains('\\(')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "data02.loc[1102,'imprint'] ='19931021'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>2004-03-01</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id title      author  press original translator    imprint  pages  \\\n",
       "0  1000121   昆虫记  [法]J·H·法布尔  作家出版社                  王光 2004-03-01    352   \n",
       "\n",
       "   price binding series           isbn score  number  \n",
       "0   19.0      平装         9787506312820   8.6  5019.0  "
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#imprint转成日期格式\n",
    "data03 = data02\n",
    "data03['imprint'] = pd.to_datetime(data03['imprint'])\n",
    "data03.head(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析书的数量与年份关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.pyplot import MultipleLocator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y = data03.groupby(data03['imprint'].dt.year)['id'].count()\n",
    "x = data03['imprint'].dt.year.drop_duplicates(keep='first', inplace=False).sort_values()\n",
    "plt.figure(figsize=(15,5))\n",
    "x_major_locator=MultipleLocator(5)\n",
    "#把x轴的刻度间隔设置为1，并存在变量里\n",
    "y_major_locator=MultipleLocator(100)\n",
    "#把y轴的刻度间隔设置为10，并存在变量里\n",
    "ax=plt.gca()\n",
    "#ax为两条坐标轴的实例\n",
    "ax.xaxis.set_major_locator(x_major_locator)\n",
    "#把x轴的主刻度设置为1的倍数\n",
    "ax.yaxis.set_major_locator(y_major_locator)\n",
    "#把y轴的主刻度设置为10的倍数\n",
    "plt.plot(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析书籍的评分与年年代之间是否有某种关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>2004-03-01</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id title      author  press original translator    imprint  pages  \\\n",
       "0  1000121   昆虫记  [法]J·H·法布尔  作家出版社                  王光 2004-03-01    352   \n",
       "\n",
       "   price binding series           isbn score  number  \n",
       "0   19.0      平装         9787506312820   8.6  5019.0  "
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0       8.6\n",
       "1       9.0\n",
       "2       7.8\n",
       "3       7.7\n",
       "4       8.6\n",
       "       ... \n",
       "7800    NaN\n",
       "7801    8.7\n",
       "7802    8.6\n",
       "7803    NaN\n",
       "7804    9.5\n",
       "Name: score, Length: 7805, dtype: float64"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#data03.groupby(data03['imprint'].dt.year)['score'].sum()\n",
    "#字符串转数字\n",
    "data03['score'] = pd.to_numeric(data03['score'])\n",
    "data03['score']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3AAAAEzCAYAAABwueE8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd3zV1f3H8dfJ3gsSwkggoOxN2Ii4CioVsQ4QF4q4d636q21drW3VOupAilsBF27FBQrI3ivsEbIX2fve8/sjKcWwc7Nu8n4+Hnnc3O8993tOAknu+57z/RxjrUVERERERESaPo/GHoCIiIiIiIicHAU4ERERERERN6EAJyIiIiIi4iYU4ERERERERNyEApyIiIiIiIibUIATERERERFxEycMcMaY140xGcaYzYcdizDGfG+M2Vl9G36M544zxmw3xuwyxjxYlwMXERERERFpaU5mBu5NYFyNYw8CP1prTwd+rL7/K8YYT+Al4HygJzDZGNPTpdGKiIiIiIi0YCcMcNbaRUBOjcMTgLeqP38LuPgoTx0C7LLW7rHWlgNzq58nIiIiIiIitVDba+DaWGtTAapvo47Spj1w4LD7SdXHREREREREpBa86vHc5ijH7DEbGzMdmA4QGBg4qHv37vU1LhERERERkSZtzZo1WdbayJrHaxvg0o0xba21qcaYtkDGUdokATGH3e8ApBzrhNbamcBMgPj4eLt69epaDk1ERERERMS9GWP2H+14bZdQfg5cW/35tcBnR2mzCjjdGBNnjPEBJlU/T0RERERERGrhZLYRmAMsA7oZY5KMMTcAfwfOM8bsBM6rvo8xpp0x5msAa20lcDvwLZAAfGCt3VI/X4aIiIiIiEjzd8IllNbaycd46JyjtE0BLjjs/tfA17UenYiIiIiIiBxS2yWUIiIiIiIi0sAU4ERERERERNyEApyIiIiIiIibUIATERERERFxEwpwIiIiIiIibkIBTkRERERExE0owImIiIiIiLgJBTgRERERERE3oQAnIiIiIiLiJhTgRERERERE3IQCnIiIiIiIiJtQgBMREREREXETCnAiIiIiIiJuwqUAZ4y5yxiz2RizxRhz9zHajDHGrK9u87Mr/YmIiIiIiLRkXrV9ojGmN3AjMAQoB+YbY76y1u48rE0Y8DIwzlqbaIyJcnXAIiIiIiIiLZUrM3A9gOXW2mJrbSXwMzCxRpsrgXnW2kQAa22GC/2JiIiIiIi0aK4EuM3AaGNMK2NMAHABEFOjTVcg3BjzkzFmjTHmGhf6ExERERERadFqvYTSWptgjPkH8D1QCGwAKo9y/kHAOYA/sMwYs9xau6Pm+Ywx04HpALGxsbUdloiIiIiISLPlUhETa+1r1tqB1trRQA6ws0aTJGC+tbbIWpsFLAL6HeNcM6218dba+MjISFeGJSIiIiIi0iy5WoUyqvo2FrgEmFOjyWfAGcYYr+pllkOBBFf6FBERERERaalqvYSy2sfGmFZABXCbtfagMeZmAGvtjOpllvOBjYATmGWt3exinyIiIiIiIi2SSwHOWnvGUY7NqHH/KeApV/oRERERERERF5dQioiIiIiISMNRgBMREREREXETCnAiIiIiIiJuQgFORERERETETSjAiYiIiIiIuAkFOBERERERETehACciIiIiIuImFOBERERERETchAKciIiIiIiIm1CAExERERERcRMKcCIiIiIiIm5CAU5ERERERMRNKMCJiIiIiIi4CZcCnDHmLmPMZmPMFmPM3Ud5fIoxZmP1x1JjTD9X+hMREREREWnJah3gjDG9gRuBIUA/YLwx5vQazfYCZ1pr+wKPAzNr25+IiIiIiEhL58oMXA9gubW22FpbCfwMTDy8gbV2qbX2YPXd5UAHF/oTERERERFp0VwJcJuB0caYVsaYAOACIOY47W8AvjnWg8aY6caY1caY1ZmZmS4MS0REREREpHnyqu0TrbUJxph/AN8DhcAGoPJobY0xZ1EV4EYd53wzqV5iGR8fb2s7LhERERERkebKpSIm1trXrLUDrbWjgRxgZ802xpi+wCxggrU225X+REREREREWrJaz8ABGGOirLUZxphY4BJgeI3HY4F5wNXW2h2u9CUiIiIiItLSuRTggI+NMa2ACuA2a+1BY8zNANbaGcCfgVbAy8YYgEprbbyLfYqIiIiIiLRILgU4a+0ZRzk247DPpwHTXOlDxFVFZZX8vCOTb7eksS21oN76CfD1JCrYl8hgX6KC/apv/3e/VZAP3p4urVoWERERkRbO1Rk4kSYpt7icHxMymL8ljUU7MimrdBIR6MPA2HC8PEyd92exFJZVsieziBV7c8gtrjiijTEQEeBDZHWoO3rQ8yUqxI9AH0+q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uP8U8JQr/YiIiIiIiEjdVaEUERERERGReqYAJyIiIiIi4iYU4ERERERERNyEApyIiIiIiIibUIATERERERFxEwpwIiIiIiIibkIBTkRERERExE0owImIiIiIiLgJBTgRERERERE3oQAnIiIiIiLiJhTgRERERERE3IQCnIiIiIiIiJuodYAzxnQzxqw/7CPfGHN3jTZTjDEbqz+WGmP6uT5kERERERGRlsmrtk+01m4H+gMYYzyBZOCTGs32Amdaaw8aY84HZgJDa9uniIiIiIhIS1brAFfDOcBua+3+ww9aa5cednc50KGO+hMREREREWlx6uoauEnAnBO0uQH4po76ExERERERaXFcnoEzxvgAFwEPHafNWVQFuFHHaTMdmA4QGxvr6rBERERERESanbqYgTsfWGutTT/ag8aYvsAsYIK1NvtYJ7HWzrTWxltr4yMjI+tgWCIiIiIiIs1LXQS4yRxj+aQxJhaYB1xtrd1RB32JiIiIiIi0WC4toTTGBADnATcdduxmAGvtDODPQCvgZWMMQKW1Nt6VPkVERERERFoqlwKctbaYqoB2+LEZh30+DZjmSh8iIiIiIiJSpa6qUIqIiIiIiEg9U4ATERERERFxEwpwIiIiIiIibkIBTkRERERExE0owImIiIiIiLgJBTgRERERERE3oQAnIiIiIiLiJhTgRERERERE3IQCnIiIiIiIiJtQgBMREREREXETCnAiIiIiIiJuQgFORERERETETSjAiYiIiIiIuAmXApwxJswY85ExZpsxJsEYM7zG46HGmC+MMRuMMVuMMVNdG66IiIiIiEjL5eXi858H5ltrLzXG+AABNR6/Ddhqrf2tMSYS2G6Mec9aW+5ivyIiIiIiIi1OrQOcMSYEGA1cB1AdymoGMwsEG2MMEATkAJW17VNERERERKQlc2UJZWcgE3jDGLPOGDPLGBNYo82LQA8gBdgE3GWtdbrQp4iIiIiISIvlSoDzAgYCr1hrBwBFwIM12owF1gPtgP7Ai9Uzd0cwxkw3xqw2xqzOzMx0YVgiIiIiIiLNkysBLglIstauqL7/EVWB7nBTgXm2yi5gL9D9aCez1s601sZba+MjIyNdGJaIiIiIiEjzVOsAZ61NAw4YY7pVHzoH2FqjWWL1cYwxbYBuwJ7a9ikiIiIiItKSuVqF8g7gveoKlHuAqcaYmwGs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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#data03[data03['score']=='NaN']\n",
    "y = data03.groupby(data03['imprint'].dt.year)['score'].mean()\n",
    "x = data03['imprint'].dt.year.drop_duplicates(keep='first', inplace=False).sort_values()\n",
    "plt.figure(figsize=(15,5))\n",
    "x_major_locator=MultipleLocator(5)\n",
    "#把x轴的刻度间隔设置为1，并存在变量里\n",
    "y_major_locator=MultipleLocator(0.4)\n",
    "#把y轴的刻度间隔设置为10，并存在变量里\n",
    "ax=plt.gca()\n",
    "#ax为两条坐标轴的实例\n",
    "ax.xaxis.set_major_locator(x_major_locator)\n",
    "#把x轴的主刻度设置为1的倍数\n",
    "ax.yaxis.set_major_locator(y_major_locator)\n",
    "#把y轴的主刻度设置为10的倍数\n",
    "plt.plot(x, y)\n",
    "plt.plot(x, [y.mean()]*len(y))\n",
    "plt.ylim(5,10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. 书籍的价格⼀一般都是在什什么范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>2004-03-01</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id title      author  press original translator    imprint  pages  \\\n",
       "0  1000121   昆虫记  [法]J·H·法布尔  作家出版社                  王光 2004-03-01    352   \n",
       "\n",
       "   price binding series           isbn  score  number  \n",
       "0   19.0      平装         9787506312820    8.6  5019.0  "
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03['price'].isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0        19.0\n",
       "1        30.0\n",
       "2        25.0\n",
       "3        12.0\n",
       "4        12.8\n",
       "        ...  \n",
       "7800      0.0\n",
       "7801     49.8\n",
       "7802     98.0\n",
       "7803     58.0\n",
       "7804    168.0\n",
       "Name: price, Length: 7805, dtype: float64"
      ]
     },
     "execution_count": 171,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03['price'] = pd.to_numeric(data03['price'])\n",
    "data03['price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [],
   "source": [
    "data03['s_year'] = data03['imprint'].dt.year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "      <th>s_year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>2004-03-01</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1000134</td>\n",
       "      <td>三毛流浪记全集</td>\n",
       "      <td>张乐平</td>\n",
       "      <td>少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>2001-08-01</td>\n",
       "      <td>261</td>\n",
       "      <td>30.0</td>\n",
       "      <td>平装(无盘)</td>\n",
       "      <td></td>\n",
       "      <td>9787532446674</td>\n",
       "      <td>9.0</td>\n",
       "      <td>602.0</td>\n",
       "      <td>2001</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id    title      author    press original translator    imprint  \\\n",
       "0  1000121      昆虫记  [法]J·H·法布尔    作家出版社                  王光 2004-03-01   \n",
       "1  1000134  三毛流浪记全集         张乐平  少年儿童出版社                     2001-08-01   \n",
       "\n",
       "   pages  price binding series           isbn  score  number  s_year  \n",
       "0    352   19.0      平装         9787506312820    8.6  5019.0    2004  \n",
       "1    261   30.0  平装(无盘)         9787532446674    9.0   602.0    2001  "
      ]
     },
     "execution_count": 181,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "price\n",
       "1.00       2\n",
       "1.10       1\n",
       "1.15       1\n",
       "1.20       1\n",
       "1.30       2\n",
       "          ..\n",
       "2625.00    1\n",
       "3087.00    1\n",
       "3456.00    1\n",
       "3980.00    1\n",
       "8000.00    1\n",
       "Name: id, Length: 517, dtype: int64"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_p = data03.groupby('price')['id'].count()[1:]\n",
    "data_p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAEvCAYAAADW/SmEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAR20lEQVR4nO3df6jd9X3H8de7SWdLO6hilCyRRUY2poXZEbKCMErtZrqNxQ0cEVYycLg/7LAw2LT/WP8QZGxl+2MOXCvLWFcJtMVQyjqXVUqhVGNnf0TrDNVpZjBpS2n9x6F974/7DTuk9yY35t6cj/c8HiDnnM/5nnM+yf3ko0/POd9UdwcAAIAxvWXeEwAAAGBlog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgm+c9gSS5/PLLe8eOHfOeBgAAwFw88cQT3+vuLcvdN0S07dixI0eOHJn3NAAAAOaiqv57pft8PBIAAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgog0AAGBgm+c9gZHVPTXvKcxF393zngIAADDxThsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDARBsAAMDAVh1tVbWpqv6zqj4/3b6sqh6pqmeny0tnjr2rqo5V1TNVdeN6TBwAAGARnM87bXckeXrm9p1JDnf3ziSHp9upqmuS7EtybZI9Se6vqk1rM10AAIDFsqpoq6rtSX47ySdmhvcmOTBdP5Dkppnxh7r71e5+LsmxJLvXZroAAACLZbXvtP1Nkj9P8pOZsSu7+0SSTJdXTOPbkrw4c9zxaQwAAIDzdM5oq6rfSXKyu59Y5XPWMmO9zPPeVlVHqurIqVOnVvnUAAAAi2U177Rdn+R3q+r5JA8leX9V/XOSl6tqa5JMlyen448nuWrm8duTvHTmk3b3A929q7t3bdmy5QJ+CQAAABvXOaOtu+/q7u3dvSNLJxj5j+7+wySHkuyfDtuf5OHp+qEk+6rqkqq6OsnOJI+t+cwBAAAWwOYLeOx9SQ5W1a1JXkhyc5J099GqOpjkqSSvJbm9u1+/4JkCAAAsoPOKtu5+NMmj0/XvJ7lhhePuTXLvBc4NAABg4Z3P39MGAADARSbaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABibaAAAABnbOaKuqt1XVY1X1jao6WlX3TOOXVdUjVfXsdHnpzGPuqqpjVfVMVd24nr8AAACAjWw177S9muT93f0rSa5Lsqeq3pvkziSHu3tnksPT7VTVNUn2Jbk2yZ4k91fVpvWYPAAAwEZ3zmjrJa9MN986/dNJ9iY5MI0fSHLTdH1vkoe6+9Xufi7JsSS713TWAAAAC2JV32mrqk1V9WSSk0ke6e6vJbmyu08kyXR5xXT4tiQvzjz8+DQGAADAeVpVtHX36919XZLtSXZX1bvPcngt9xQ/dVDVbVV1pKqOnDp1anWzBQAAWDDndfbI7v5hkkez9F21l6tqa5JMlyenw44nuWrmYduTvLTMcz3Q3bu6e9eWLVvewNQBAAA2vtWcPXJLVb1ruv72JB9I8p0kh5Lsnw7bn+Th6fqhJPuq6pKqujrJziSPrfXEAQAAFsHmVRyzNcmB6QyQb0lysLs/X1VfTXKwqm5N8kKSm5Oku49W1cEkTyV5Lcnt3f36+kwfAABgYztntHX3N5O8Z5nx7ye5YYXH3Jvk3gueHQAAwII7r++0AQAAcHGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAAgIGJNgAA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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15,5))\n",
    "plt.hist(data_p, color='g', rwidth=0.8)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6 出版的书籍最多的前20个出版社"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 240,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>press</th>\n",
       "      <th>original</th>\n",
       "      <th>translator</th>\n",
       "      <th>imprint</th>\n",
       "      <th>pages</th>\n",
       "      <th>price</th>\n",
       "      <th>binding</th>\n",
       "      <th>series</th>\n",
       "      <th>isbn</th>\n",
       "      <th>score</th>\n",
       "      <th>number</th>\n",
       "      <th>s_year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>1000121</td>\n",
       "      <td>昆虫记</td>\n",
       "      <td>[法]J·H·法布尔</td>\n",
       "      <td>作家出版社</td>\n",
       "      <td></td>\n",
       "      <td>王光</td>\n",
       "      <td>2004-03-01</td>\n",
       "      <td>352</td>\n",
       "      <td>19.0</td>\n",
       "      <td>平装</td>\n",
       "      <td></td>\n",
       "      <td>9787506312820</td>\n",
       "      <td>8.6</td>\n",
       "      <td>5019.0</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1000134</td>\n",
       "      <td>三毛流浪记全集</td>\n",
       "      <td>张乐平</td>\n",
       "      <td>少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>2001-08-01</td>\n",
       "      <td>261</td>\n",
       "      <td>30.0</td>\n",
       "      <td>平装(无盘)</td>\n",
       "      <td></td>\n",
       "      <td>9787532446674</td>\n",
       "      <td>9.0</td>\n",
       "      <td>602.0</td>\n",
       "      <td>2001</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        id    title      author    press original translator    imprint  \\\n",
       "0  1000121      昆虫记  [法]J·H·法布尔    作家出版社                  王光 2004-03-01   \n",
       "1  1000134  三毛流浪记全集         张乐平  少年儿童出版社                     2001-08-01   \n",
       "\n",
       "   pages  price binding series           isbn  score  number  s_year  \n",
       "0    352   19.0      平装         9787506312820    8.6  5019.0    2004  \n",
       "1    261   30.0  平装(无盘)         9787532446674    9.0   602.0    2001  "
      ]
     },
     "execution_count": 240,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data03.head(2)\n",
    "data04 = data03\n",
    "data04 = data04.dropna(subset=['press'])\n",
    "data04.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7805"
      ]
     },
     "execution_count": 248,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data03)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7673"
      ]
     },
     "execution_count": 249,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss = data04[data04['press'] == ''].index\n",
    "data04 = data04.drop(ss)\n",
    "len(data04)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "press\n",
       "中信出版社           348\n",
       "人民邮电出版社         328\n",
       "机械工业出版社         273\n",
       "上海译文出版社         260\n",
       "人民文学出版社         220\n",
       "电子工业出版社         217\n",
       "南海出版公司          193\n",
       "北京联合出版公司        192\n",
       "湖南文艺出版社         124\n",
       "中信出版集团          119\n",
       "生活·读书·新知三联书店    107\n",
       "广西师范大学出版社       106\n",
       "长江文艺出版社         105\n",
       "北京十月文艺出版社       102\n",
       "译林出版社           101\n",
       "江苏凤凰文艺出版社        96\n",
       "新星出版社            89\n",
       "清华大学出版社          87\n",
       "中国人民大学出版社        81\n",
       "江苏文艺出版社          79\n",
       "Name: press, dtype: int64"
      ]
     },
     "execution_count": 256,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "groupd_press = data04.groupby('press')\n",
    "groupd_press['press'].count()\n",
    "top_20 = groupd_press['press'].count().sort_values(ascending=False)[0:20]\n",
    "top_20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import font_manager as fm, rcParams\n",
    "import matplotlib as plt1\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.font_manager import FontProperties\n",
    "plt1.rcParams['font.sans-serif']=['SimHei'] #显示中文标签\n",
    "plt1.rcParams['axes.unicode_minus']=False   #这两行需要手动设置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15,5))\n",
    "top_20.plot(kind='bar',color=['r','g','b', 'c', 'm', 'y'])\n",
    "font = FontProperties(fname=r\"C:\\Users\\lenovo\\Desktop\\test\\week15\\SimSun.ttc\", size=14)\n",
    "plt.title(u\"出版最多的20个出版社\", fontproperties=font)\n",
    "plt.xlabel(u\"出版社\", fontproperties=font)\n",
    "plt.ylabel(u\"数量\", fontproperties=font)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6rc1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
